Dans ce tutoriel, je vais vous expliquer comment déployer Gitlab avec Docker en utilisant un fichier docker-compose.yml
.
Présentation de Gitlab
Avant de parler technique et déploiement, je vais vous présenter Gitlab pour ce que ne connaisse pas.
Gitlab est un logiciel d’hébergement de source basé sur git avec les fonctionnalités suivantes :
- Wiki pour faire la documentation des projets.
- Suivi de bugs.
- Intégration continu et livraison continu (CI/CD).
- Registre d’image Docker.
- Snippet de code.
C’est en fait une solution alternative à « Github » qui peut être autohébergé.
Quand on parle de Gitlab on peut parlé de deux choses :
- Gitlab.com : qui est la solution SaaS (service) comme Github, qui vous permet d’héberger vos projets en ligne. Il existe plusieurs niveau de services en fonction de l’abonnement (Gratuit ou payant)
- Gitlab : la solution autohébergé qui permet de gérer son propre serveur de source Git, la aussi deux versions sont disponibles.
- CE : Community Edition qui est la version gratuite (libre)
- EE : Enterprise Edition édition payante avec des fonctionnalités supplémentaires.
Prérequis
Pour déployer Gitlab en conteneur Docker avec Docker compose vous avez besoins :
- D’un serveur Linux avec Docker et docker compose.
- D’un service Web comme reverse proxy (dans ce tutoriel, je vais utiliser Nginx).
Déploiement de Gitlab avec Docker
Comme à mon habitude, je vais travailler dans le dossier /containers
.
Je vais commencer par créer un dossier pour stocker mon fichier docker-compose.yml
et les volumes de mon conteneur.
sudo mkdir gitlab
Aller dans le dossier créé.
cd gitlab
Créer le fichier docker-compose.yml
sudo touch docker-compose.yml
Voici le contenu du fichier qui doit être adapté à votre environnement :
Voici mon fichier pour ce tutoriel :
Télécharger l’image du conteneur pour Gitlab
sudo docker compose pull
Démarrer le conteneur :
sudo docker compose up -d
Regarder les logs pour vérifier que tout se passe bien :
sudo docker compose logs -f
Le premier démarrage prend du temps …
Si vous utilisez Nginx, voici le fichier du virtual host que j’utilise.
Comme vous pouvez le voir, la publication du fichier est en HTTP, le passage de la configuration en HTTPS se fera pas certbot lors de la demande du certificat.
Voici le fichier du virtual host en HTTPS.
Maintenant que tout est prêt, on va tester le fonctionne du serveur Gitlan.
Depuis un navigateur, aller à l’url que vous avez défini pour Gitlab.
On arrive sur le page d’authentification :
L’identifiant est root ou l’adresse email défini dans le fichier du conteneur et le mot de passe est celui-ci également du fichier.
Vous êtes maintenant connecté à Gitlab
Il ne vous reste plus qu’à créer des projets.
Même si Gitlab est à la base un outil de développement pour la gestion de code, il peut être aussi utilisé par les administrateurs systèmes et réseau :
- Dépôt pour les scripts
- Exécution de script PowerShell à distance, ce qui évite de devoir mettre à jour les stratégies de groupes (GPO)
- Sauvegarde de configuration de serveur Linux (Nginx, Ansible …)
- …