Skip to content
Snippets Groups Projects
README.md 3.36 KiB
Newer Older
# Déploiement de Geocontrib avec Docker

## Installation

Pierre GROS's avatar
Pierre GROS committed
### Manuelle

Cloner le dépôt.

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

Pierre GROS's avatar
Pierre GROS committed
### Avancée

#### Cloner un dépot de configuration geocontrib

Depuis https://git.neogeo.fr/geocontrib/geocontrib-docker-configuration
Pierre GROS's avatar
Pierre GROS committed


#### Installer gitlab runner

Sur le serveur de destination:

##### Installer gitlab runner 

```shell
Pierre GROS's avatar
Pierre GROS committed
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash 
sudo apt-get -y install gitlab-runner
Pierre GROS's avatar
Pierre GROS committed
```

##### 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.

```shell
sudo -u gitlab-runner mkdir -p /opt/geocontrib/geocontrib-docker
Pierre GROS's avatar
Pierre GROS committed
sudo -u gitlab-runner mkdir -p /opt/geocontrib/geocontrib-docker-configuration
Pierre GROS's avatar
Pierre GROS committed

sudo -u gitlab-runner git clone git@git.neogeo.fr:geocontrib/geocontrib-docker.git /opt/geocontrib/geocontrib-docker
Pierre GROS's avatar
Pierre GROS committed
sudo -u gitlab-runner git clone [dépot créé au début] /opt/geocontrib/geocontrib-docker-configuration
Pierre GROS's avatar
Pierre GROS committed
```
Pierre GROS's avatar
Pierre GROS committed
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

```shell
Pierre GROS's avatar
Pierre GROS committed
cd /opt/geocontrib/geocontrib-docker-configuration
Pierre GROS's avatar
Pierre GROS committed
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.

Pierre GROS's avatar
Pierre GROS committed
Dans le dossier geocontrib-docker, création de deux liens symboliques pour pointer vers geocontrib-docker-configuration
Pierre GROS's avatar
Pierre GROS committed

```shell
Pierre GROS's avatar
Pierre GROS committed
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
Pierre GROS's avatar
Pierre GROS committed

sudo usermod -a -G docker gitlab-runner
Pierre GROS's avatar
Pierre GROS committed
```

##### Donner accès depuis internet en fonction de l'environnement

Exemple de configuration nginx : 

```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;
    }
}
```

root's avatar
root committed
## Configuration

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