Skip to content

Commit

Permalink
Review Docker installation documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
camillemonchicourt committed Sep 15, 2023
1 parent fedbf33 commit d1bdabe
Showing 1 changed file with 18 additions and 27 deletions.
45 changes: 18 additions & 27 deletions docs/installation-docker.rst
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
Docker
******

Depuis GeoNature 2.12, GeoNature fourni des images Docker pour le backend et le frontend.
L'installation de GeoNature avec Docker est la manière la plus simple de déployer GeoNature, ses 4 modules externes principaux (Import, Export, Dashboard, Monitoring), TaxHub et UsersHub, mais aussi de les mettre à jour, avec seulement quelques lignes de commandes.

.. warning::
Elle permet aussi d'installer GeoNature sur différents systèmes, et pas uniquement sur Debian, comme c'est le cas avec l'installation classique.

Les images Docker sont encore récentes, non éprouvées et peu documentées.
Leur utilisation en production n’est de ce fait pas encore recommandée.
Elle peut néanmoins nécessiter de connaitre le fonctionnement de Docker pour ceux qui souhaitent aller plus loin et mettre en place une installation plus spécifique.

Docker Compose
--------------

Prérequis
---------

* `Docker <https://docs.docker.com/engine/install/>`_
Pour déployer facilement GeoNature avec Docker, utilisez le Docker Compose proposé et documenté dans le dépôt `GeoNature-Docker-services <https://github.com/PnX-SI/Geonature-Docker-services/>`_.

Pour des déploiements Docker plus avancés et spécifiques, des images Docker des différents outils (GeoNature, TaxHub, UsersHub, GeoNature et ses 4 modules externes principaux) sont automatiquement construites et publiées à chaque nouvelle version publiée.

Image backend
-------------

Des images pré-buildées sont présentes sur `github <https://github.com/PnX-SI/GeoNature/pkgs/container/geonature-backend/versions?filters%5Bversion_type%5D=tagged>`_.
Des images pré-construites automatiquement sont présentes sur `Github <https://github.com/PnX-SI/GeoNature/pkgs/container/geonature-backend/versions?filters%5Bversion_type%5D=tagged>`_.

Les images tagguées `-wheels` contiennent les wheels Python de GeoNature, de ses dépendances et modules contrib, de manière à pouvoir être enrichie avec vos wheels provenant de vos propres modules (images de type « builder »).
Les images tagguées `-wheels` contiennent les wheels Python de GeoNature, de ses dépendances et modules contrib, de manière à pouvoir être enrichies avec vos wheels provenant de vos propres modules (images de type « builder »).

Build manuel de l’image :
Construction manuelle de l’image :

.. code-block:: bash
Expand All @@ -31,28 +30,26 @@ Build manuel de l’image :
--target=prod \
--tag=ghcr.io/pnx-si/geonature-backend:develop
Fonctionnement de l’image :

* GeoNature attend sa configuration dans le dossier ``/dist/config`` (à monter dans un volume afin de pouvoir la modifier).
L’emplacement du fichier de configuration peut également être précisé via la variable d’environnement ``GEONATURE_CONFIG_FILE``.
* Il est également possible de fournir une configuration Python via la variable d’environnement ``GEONATURE_SETTINGS``.
* Les médias seront stocké dans le dossier ``/dist/media`` (à monter dans un volume afin de les sauvegarder).
* Toute variable d’environnement préfixée par ``GEONATURE_`` se verra traduit par un paramètre de configuration homonyme
* Les médias seront stockés dans le dossier ``/dist/media`` (à monter dans un volume afin de les sauvegarder).
* Toute variable d’environnement préfixée par ``GEONATURE_`` se verra traduite par un paramètre de configuration homonyme
(`documentation Flask <https://flask.palletsprojects.com/en/2.2.x/api/#flask.Config.from_prefixed_env>`_).
Si vous souhaitez définir une variable de configuration se trouvant dans une section, utilisé deux *underscore*.
Si vous souhaitez définir une variable de configuration se trouvant dans une section, utilisez deux *underscore*.
Par exemple, pour définir le paramètre ``NB_LAST_OBS`` de la section ``[SYNTHESE]``, on définira une variable d’environnement ``GEONATURE_SYNTHESE__NB_LAST_OBS``.
* Pour peupler la base de données, référez vous au script ``install/03_create_db.sh``.

* Pour peupler la base de données, référez-vous au script ``install/03_create_db.sh``.

Image frontend
--------------

Des images pré-buildées sont présentes sur `github <https://github.com/PnX-SI/GeoNature/pkgs/container/geonature-frontend/versions?filters%5Bversion_type%5D=tagged>`_.
Des images pré-construites automatiquement sont présentes sur `Github <https://github.com/PnX-SI/GeoNature/pkgs/container/geonature-frontend/versions?filters%5Bversion_type%5D=tagged>`_.

Les images tagguées `-source` contiennent uniquement les sources de GeoNature et des modules contrib, et attendent d’être enrichie avec les sources de vos propres modules tandis que les images tagguées `-nginx` contiennent la configuration nginx prête à l’emploi pour GeoNature (images de type « builder »).
Les images tagguées `-source` contiennent uniquement les sources de GeoNature et des modules contrib, et attendent d’être enrichies avec les sources de vos propres modules tandis que les images tagguées `-nginx` contiennent la configuration NGINX prête à l’emploi pour GeoNature (images de type « builder »).

Build manuel de l’image :
Construction manuelle de l’image :

.. code-block:: bash
Expand All @@ -64,16 +61,10 @@ Build manuel de l’image :
Fonctionnement de l’image :

* La configuration nginx de l’image est généré dynamiquement à son démarrage à partir des variables d’environnement suivantes :
* La configuration NGINX de l’image est générée dynamiquement à son démarrage, à partir des variables d’environnement suivantes :

* ``NGINX_PORT`` (défaut : 80)
* ``NGINX_HOST`` (défaut : localhost)
* ``NGINX_LOCATION`` (défaut : /, à modifier pour servir GeoNature sur un préfixe)

* La variable d’environnement ``API_ENDPOINT`` est lue au démarrage de l’image afin de mettre à jour le fichier de configuration du frontend ``assets/config.json``.


Docker Compose
--------------

Une configuration Docker Compose est en cours de mise au point dans `la branche *docker-compose* du dépôt GeoNature-Docker-services <https://github.com/PnX-SI/Geonature-Docker-services/tree/docker-compose>`_.

0 comments on commit d1bdabe

Please sign in to comment.