Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review Docker installation documentation #2703

Merged
merged 1 commit into from
Sep 15, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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>`_.
Loading