|
|
|
|
1. Voorwoord
Deze pagina is onderdeel van de beschrijving van de theorie van comicweb. In deze pagina leggen we het een en ander uit over de infrastructuur die nodig is.
De algemene theorie van
Het Strip Infomatie Model - Een model voor stripboeken, stripverhalen en stripbladen
wordt het beschreven vanuit drie verschillende gezichtspunten. Deze zijn:
De gebruiker is de raadpleger van een website of de lezer van een catalogus gebaseerd op het Strip Informatie Model (SIM). Het document voor de gebruiker legt de begrippen en fundamenten uit zodat alle producten gebruikt en begrepen kunnen worden.
De ontwikkelaar maakt programmatuur om het publicatie proces te ondersteunen en de beheerder administreert alle gegevens omtrent stripboeken, stripverhalen en stripbladen die nodig zijn om de eindproducten te kunnen publiceren.
Deze pagina is de beschrijving van de infrastructuur die voornamelijk voor de technische beheerder bedoeld is..
De infrastructuur
Er zijn twee manieren om Comicweb te hosten. De eerste is met de infrastructuur geinstalleerd op een host computer. De tweede manier is om Comicweb in een Docker-container te draaien.
Comicweb wordt op het moment in productie gehost op een Synology. De infrastructuur van de synology wordt gebruikt en dit omvat een webserver , een database en PHP als serverside logica voor de search.
Docker containers
Comicweb kan echter ook helemaal in een Docker container draaien. De belangrijkste infrastructuur zijn het operating system Ubuntu, de webserver Apache en de database MySql en serverside logica bestaande uit PHP en Python.
Comicweb bestaat helemaal uit statische HTML-pagina's behalve de search functie. Voor de searchfunctie gebruiken we serverside programming. Er zijn twee implementaties voor de search functie namelijk search.php en search.py. Het is de bedoeling om helemaal van PHP af te stappen. Voor development gebruiken we de voornamelijk de Docker container.
Om de docker image te bouwen is er een build file die heet
dockerfile-cw.txt
om het Docker-image te maken gebruiken we een compose file die heet
compose.yaml
In de compose file wordt een volume als volgt gemaakt:
./websiteroot:/var/www/html
De complete website van comicweb dient dus geplaatst te worden in de sub directory websiteroot van de directory waar de build en compose file staan.
Om de container te builden en te runnen geeft men de volgende opdracht
docker compose up -d --force-recreate
Een lastig probleem blijft altijd het vullen van de database. Als de container start is de database leeg. Deze zal dus gevuld moeten worden. Hiertoe is in de container het python programma initdb.py. Deze leest de databse source files uit de directory /usr/bin/dbinit, die daar in het build proces in gecopieerd zijn, en vult de database. Dit proces kan enkele minuten duren. De webserver van de container zal op port 8089 luisteren en dat werkt meteen. De search kan pas na enkele minuten gebruikt worden.
Elke keer als de container start zal dit gebeuren. Bij een nieuwe deployment van de website is het beste om het image opnieuw te bouwen met de nieuwe database source files. Men zou ook de nieuwe database sourcefiles in de container kunnen kopieren en het programma initdb.py opnieuw runnen maar als de container dan stopt is alles weer weg.
Te info hier zijn de source files (op het moment van dit schrijven)
Docker build file
Docker compose file
|
|
|
|
134 |