# HG changeset patch # User ymh # Date 1521199752 -3600 # Node ID 53fee689f666028d2aaba25b139346ed9ab4e3b2 # Parent 385e3a12ee27fb1bc666ea508b9ccac93b78b42a Dockerfile correction and add a way to save/load the docker images. diff -r 385e3a12ee27 -r 53fee689f666 .hgignore --- a/.hgignore Thu Mar 15 23:52:11 2018 +0100 +++ b/.hgignore Fri Mar 16 12:29:12 2018 +0100 @@ -25,3 +25,4 @@ ^src/dist ^src/MANIFEST.in$ ^dev/hdalab/dist +^dev/out diff -r 385e3a12ee27 -r 53fee689f666 dev/README.md --- a/dev/README.md Thu Mar 15 23:52:11 2018 +0100 +++ b/dev/README.md Fri Mar 16 12:29:12 2018 +0100 @@ -1,16 +1,40 @@ # HDALab Docker images -- restore database -- +L'application HDALab a été conteneurisée en 5 services dont 2 nécessite la construction d'une image. +Les services sont orchestrés avec l'application `docker-compose`. +L'ensemble expose les ports suivant sur l'ordinateur hôte: + - port 8080 : l'interface web HDALab + - port 8025 : Accès à l'interface de consultation [mailhog](https://github.com/mailhog/MailHog). + - port 5432 : port serveur postgresql + +## Mise place des images conteneurs docker + +Deux possibilités existent pour mettre en place les images docker : + - construire les images + - import des images + +### Construction des images +Les commandes suivantes permettent de construire les images. Ces commandes sont à lancer dans le même répertoire que le fichier `docker-compose.yml`. + +``` +$ ./prepare_docker_build.sh +$ docker-compose -p hdalab build +``` + +### Import des images + +Lancer cette commande pour charger les images du projet. + +``` +$ docker load -i +``` ## Comment construire les container HDALab Toutes les commandes suivantes sont à effectuer dans le répertoire contenant le fichier `docker-compose.yml`. ``` -$ ./prepare_docker_build.sh -$ docker-compose -p hdalab build $ docker-compose -p hdalab up -d $ docker-compose -p hdalab exec hdalab django-admin collectstatic --noinput $ docker-compose -p hdalab exec hdalab django-admin migrate --noinput @@ -30,7 +54,7 @@ ### Import des données issues de l'export HDA Cette commande importe les données RDF exportées à partir de l'application HDA. -Attention cette commande peut être longue. +Attention cette commande peut être longue (plusieurs heures). ``` $ docker-compose -p hdalab exec hdalab /usr/local/sbin/import_hda_rdf.sh /etc/hdalab/data /var/lib/hdalab http://data.culture.fr/entrepot/HDA/export.tgz @@ -63,7 +87,6 @@ ``` - # Commandes utiles ## liste des services @@ -129,3 +152,10 @@ $ echo "drop database hdalab;\ncreate database hdalab owner iri encoding 'utf-8';" | docker exec -i hdalab_pg_1 psql -U iri postgres ``` +## Accès à la base de donnée + +Le port postgresql 5432 est ouvert sur l'ordinateur hôte. +La base utilisée par l'application est `hdalab`. +L'utilisateur et mot de passe pour y accéder sont : + - utilisateur: `iri` + - mot de passe: `iri` diff -r 385e3a12ee27 -r 53fee689f666 dev/docker-compose.yml --- a/dev/docker-compose.yml Thu Mar 15 23:52:11 2018 +0100 +++ b/dev/docker-compose.yml Fri Mar 16 12:29:12 2018 +0100 @@ -14,6 +14,7 @@ - pg-data:/var/lib/postgresql/data # nginx (webserver) front: + image: hdalab_front:latest build: context: ./front ports: @@ -48,6 +49,7 @@ # hdalab hdalab: + image: hdalab_hdalab:latest build: ./hdalab volumes: - static-content:/var/lib/hdalab/static diff -r 385e3a12ee27 -r 53fee689f666 dev/hdalab/Dockerfile --- a/dev/hdalab/Dockerfile Thu Mar 15 23:52:11 2018 +0100 +++ b/dev/hdalab/Dockerfile Fri Mar 16 12:29:12 2018 +0100 @@ -8,11 +8,12 @@ && apk add --upgrade apk-tools@edge \ && apk add --no-cache --virtual build-deps gcc python-dev musl-dev linux-headers postgresql-dev \ && apk add --no-cache supervisor curl bash \ + && apk add --no-cache libxml2 libxslt postgresql-client \ && apk add --no-cache --virtual build-deps libxml2-dev \ && apk add --no-cache --virtual build-deps libxslt-dev \ && apk add --no-cache unixodbc raptor2 rasqal redland \ && apk add --no-cache --virtual build-deps sqlite-dev libtool make automake autoconf swig raptor2-dev rasqal-dev redland-dev \ - && apk add --no-cache jpeg zlib freetype lcms2 openjpeg tiff tk tcl harfbuzz fribidi \ + && apk add --no-cache jpeg zlib freetype lcms2 openjpeg tiff tk tcl harfbuzz fribidi sqlite \ && apk add --no-cache --virtual build-deps jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev harfbuzz-dev fribidi-dev \ && mkdir -p /usr/include/libxml \ && ln -s /usr/include/libxml2/libxml/xmlexports.h /usr/include/libxml/xmlexports.h \