Skip to content
Snippets Groups Projects

Déploiement de Geocontrib avec Docker

Installation

Manuelle

Cloner le dépôt.

Créer une fichier .env en se basant sur le env.sample et corriger le contenu.

Avancée

Cloner un dépot de configuration geocontrib

Depuis https://git.neogeo.fr/geocontrib/geocontrib-docker-configuration

Installer gitlab runner

Sur le serveur de destination:

Installer gitlab runner
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash 
sudo apt-get -y install gitlab-runner
Configurer le runner

Dans le repo créé : Settings > CI/CD > Runners > Project runners > New project runner -> suivre les indications Bien expliciter le tag du runner par exemple "deploy-geocontrib-nomduclient-recette"

Éditer le fichier .gitlab-ci.yml pour renseigner le tag

Si besoin surcharger le fichier recette.docker-compose.override.yml et le recette.env

Sur le serveur de destination, cloner https://git.neogeo.fr/geocontrib/geocontrib-docker dans /opt/geocontrib/geocontrib-docker en étant l'utilisateur gitlab-runner.

sudo -u gitlab-runner mkdir -p /opt/geocontrib/geocontrib-docker
sudo -u gitlab-runner mkdir -p /opt/geocontrib/geocontrib-docker-configuration

sudo -u gitlab-runner git clone git@git.neogeo.fr:geocontrib/geocontrib-docker.git /opt/geocontrib/geocontrib-docker
sudo -u gitlab-runner git clone [dépot créé au début] /opt/geocontrib/geocontrib-docker-configuration

Note : au cas où ce repository soit privé (ce qui est conseillé au vu des configurations), alors il faudra créer un access token : Settings > Access Tokens > New, et en créer un avec comme droit read_repository.

Puis sur le serveur

cd /opt/geocontrib/geocontrib-docker-configuration
sudo -u gitlab-runner git config --global credential.helper store
sudo -u gitlab-runner git pull

Les identifiants sont à saisir une fois et serons ensuite stockés en clair sur la machine. Le nom d’utilisateur peut-être n’importe quoi, seul le mot de passe compte, mais par défaut, mieux-vaut utiliser le nom du token comme login.

Dans le dossier geocontrib-docker, création de deux liens symboliques pour pointer vers geocontrib-docker-configuration

sudo -u gitlab-runner ln -s /opt/geocontrib/geocontrib-docker-configuration/recette.env /opt/geocontrib/geocontrib-docker/.env
sudo -u gitlab-runner ln -s /opt/geocontrib/geocontrib-docker-configuration/recette.docker-compose.override.yml /opt/geocontrib/geocontrib-docker/docker-compose.override.yml

sudo usermod -a -G docker gitlab-runner
Donner accès depuis internet en fonction de l'environnement

Exemple de configuration nginx :

server {
    error_log /var/log/nginx/ega-preprod.mrn.asso.fr_error.log warn;
    access_log /var/log/nginx/ega-preprod.mrn.asso.fr_access.log combined;

    listen 80;

    server_name recette.fr;

    location / {
        proxy_pass http://127.0.0.1:8085$request_uri;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 0;

        # Websocket
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
    }
}

Configuration

Variables Docker : https://git.neogeo.fr/geocontrib/geocontrib-django/-/tree/develop/docs/documentation_technique/Docker.md