Installation de Gitlab avec Docker

Sommaire

Introduction
Installation des prérequis
Installation de Docker sur Ubuntu
Docker : quelques informations utiles avant …
Installation de Gitlab avec Docker
Installation de Discourse avec Docker
Pour conclure sur ce tutoriel Docker

On va maintenant rentrer dans les choses sérieuses de notre tutoriel, on va commencer par installer l’image Docker Gitlab.

En faite, il n’y a rien de compliquer, il y a juste une commande à passer et oui, c’est tout l’intérêt d’utiliser Docker, mais je vais vous expliquer ce que fait la commande, car faire c’est bien, comprendre c’est encore mieux.

Voici la commande que nous allons passer pour installer notre conteneur GitLab :

La première ligne permet de démarrer le conteneur docker-run et le paramètre --detach ou -d permet de lancer en arrière-plan, sans ce paramètre le conteneur va être lié au terminal et donc s’arrête quand vous fermerez la session.

La seconde ligne permet de spécifier le nom de l’hôte --hostname gitlab.rdr-it.local

La troisième ligne indiquer la publication des ports avec les paramètres --publish ou -p. Dans l’exemple je mappe le port 31443 de l’hôte (Ubuntu) sur le port 443 du conteneur et ainsi de suite. Dans la théorie, je pourrais accéder à gitlab par https://ip_du_serveur:31443

La quatrième ligne avec le paramètre --name, indiquer le nom du conteneur au niveau de l’hôte.

La cinquième ligne --restart always permet d’indiquer de toujours démarrer le conteneur.

De la sixième ligne à la huitième, on configure les redirections de dossier à l’aide du paramètre --volume. La première partie correspond au dossier sur l’hôte (Ubuntu) et la seconde après le : le dossier de l’image du conteneur.

La dernière ligne gitlab/gitlab-ce:latest est l’image que l’on souhaite récupérer sur Docker Hub.

Maintenant que vous savez ce que fait la commande, on peut passer à l’installation de notre conteneur.

Avant, on va créer les dossiers sur le serveur

Installer le conteneur gitlab, adapter à votre environnement :

Patienter pendant le téléchargement et la configuration du conteneur Gitlab …

L’installation de l’image est terminée quand on récupère la main sur la console.

Docker image installed

Pour vérifier le bon fonctionne de l’image Gitlab entrer la commande ci-dessous :

sudo docker ps

On voit bien le conteneur avec le status UP et on peut voir également le mappage de port.

Depuis l’interface Cockpit, on peut aussi voir le status du conteneur.

Si on regarde dans les dossiers que l’on a créés pour les volumes, on peut voir que des fichiers et dossiers ont été créés, donc la redirection fonctionne.

Maintenant que notre image est installée, on va configurer Nginx en tant que reverse proxy.

Normalement Gitlab devrait être disponible sur le port 31080, mais je vous déconseille de procéder à sa configuration en passant par le port de l’hôte.

Dans le dossier /etc/nginx/sites-available créer un fichier nano et utiliser la configuration ci-dessous :

Adapter à votre configuration la ligne 3 en indiquant l’URL de l’accès à l’application et la ligne 6 proxy_pass en configurant le port qui correspond à votre conteneur.

Sauvegarder le fichier.

Créer un lien symbolique du fichier dans le dossier /etc/nginx/sites-enable/.

sudo ln -s /etc/nginx/sites-available/<file-name> /etc/nginx/sites-enabled/

Vérifier la configuration de Nginx :

sudo nginx -t

Si tout est bon, recharger la configuration de nginx

sudo systemctl reload nginx

Depuis un navigateur, aller à l’url configuré dans nginx, vous devriez normalement arriver sur le formulaire de configuration du mot de passe du compte root de Gitlab.

Cas d’utilisation de l’HTTPS.

La première étape va être de générer un certificat SSL à l’aide de certbot, utiliser la commande ci-dessous et suivre l’assistant.

sudo certbot

Si tout se passe bien, un certificat Let’s Encrypt est généré et la configuration Nginx adapté à l’utilisation de l’HTTPS.

Pour fonctionner correctement, il faut modifier la configuration de Gitlab pour éviter les erreurs de « mixed content ». Pour le moment celui-ci est configuré en HTTP, il faut donc configurer Gitlab pour lui dire qu’il est accessible en HTTPS depuis le port 80 de son serveur Web.

Ouvrir le fichier gitlab.rb qui se trouve dans /var/gitlab/config/.

Dans le fichier de chercher les éléments de configuration ci-dessous et configurer les de la même façon sauf pour le paramètre external_url.

external_url 'https://git.example.com'
nginx['listen_port'] = 80
nginx['listen_https'] = false

Relancer la configuration de Gitlab :

sudo docker exec -it gitlab gitlab-ctl reconfigure

Adapter la commande à votre conteneur, gitlab après -it correspond au nom du conteneur (--name).

Je ne vous en ai pas encore parlé, la commande docker exec permet d’exécuter des commandes dans le conteneur.


À travers cette partie du tutoriel, on a vu comment installer un conteneur avec le mappage des ports réseau et des dossiers, comment créer une règle de reverse proxy avec Nginx et comment exécuter une commande dans un conteneur depuis l’hôte.





Laisser un commentaire