Comment installer GitLab avec Docker sur Ubuntu 20.04 LTS

GitLab est un gestionnaire de référentiel open-source basé sur Rails développé par GitLab Inc. C’est un gestionnaire de dépôt git basé sur le Web qui permet à ton équipe de collaborer pour coder, tester et déployer des applications. GitLab propose plusieurs fonctionnalités, notamment les wikis, le suivi des problèmes, les revues de code et les flux d’activités.

Dans ce tutoriel, nous allons te montrer comment installer GitLab à l’aide de Docker et Docker Compose. De plus, nous utiliserons Ubuntu 20.04 comme système d’exploitation principal et installerons Docker à partir du dépôt officiel Ubuntu FocalFossa.

Conditions préalables

  • Serveur Ubuntu 20.04
  • Min. 4 Go de RAM
  • Privilèges de racine

Que ferons-nous ?

  • Installer Docker et Docker Compose
  • Configurer le projet Docker de GitLab
  • Construire un conteneur GitLab
  • Post installation de GitLab

Étape 1 – Installer Docker et Docker Compose

Tout d’abord, nous allons installer les paquets docker et docker-compose sur notre système Ubuntu 20.04. Et nous utiliserons les paquets docker fournis par le dépôt officiel Ubuntu FocalFossa.

Mets à jour tous les dépôts à la dernière version et installe docker et docker-compose à l’aide de la commande apt ci-dessous.

sudo apt update
sudo apt install docker.io containerd docker-compose

Une fois l’installation terminée, démarre le service docker et ajoute-le au démarrage du système.

systemctl start docker
systemctl enable docker

Ensuite, vérifie le service docker à l’aide de la commande systemctl ci-dessous.

systemctl status docker

Comme résultat, le service docker est en place et fonctionne sur le serveur Ubuntu 20.04.

Installer Docker sur Ubuntu 20.04

Pour vérifier l’installation de docker, exécute la commande docker « hello-world » ci-dessous.

docker run hello-world

Tu obtiendras maintenant le message « hello-world » de docker comme ci-dessous.

Docker run hello world

Nous sommes maintenant prêts à installer GitLab à l’aide de docker container et docker-compose.

Étape 2 – Configurer le répertoire GitLab

Dans cette étape, nous allons configurer notre répertoire de projet pour l’installation de GitLab.

Crée un nouveau répertoire appelé  » gitlab  » et va dans ce dernier.

mkdir -p gitlab; cd gitlab/

Le répertoire « gitlab » sera utilisé pour stocker tous les scripts et la configuration de docker pour GitLab.

Créer un répertoire de données et un fichier .env pour GitLab

Dans cette section, nous allons créer un nouveau répertoire pour stocker toutes nos données GitLab et créer un nouveau fichier  » .env  » qui sera utilisé par docker.

Crée un nouveau répertoire de données GitLab « /srv/gitlab » à l’aide de la commande mkdir ci-dessous.

mkdir -p /srv/gitlab/{config/ssl,logs,data}

Ensuite, dans le répertoire du projet « gitlab », crée un nouveau fichier « .env » à l’aide de l’éditeur vim.

vim .env

Définis la variable d’environnement « GITLAB_HOME » avec la valeur du répertoire de données GitLab « /srv/gitlab » comme ci-dessous.

GITLAB_HOME=/srv/gitlab

Sauvegarde et ferme.

Le script docker-compose.yml utilisera la variable d’environnement pour les volumes Gitlab.

Créer le script docker-compose.yml

Ensuite, nous allons créer un nouveau « docker-compose.yml » qui sera utilisé pour construire notre conteneur GitLab.

Crée le nouveau fichier ‘docker-compose.yml’ à l’aide de la commande vim ci-dessous.

vim docker-compose.yml

Définis le service nommé « web » avec l’image de « gitlab-ce » dernière version, et change le « hostname » avec ton nom de domaine GitLab.

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.hakase-labs.io'

Configure l’environnement pour ton installation Gitlab comme ci-dessous. Et assure-toi de changer le « external_url » avec le protocole sécurisé HTTPS, et de changer le « gitlab_rails[‘gitlab_shell_ssh_port’] » avec ton port SSH alternatif pour le conteneur.

  environment:
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
      external_url 'https://gitlab.hakase-labs.io'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
      nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

Ensuite, définis les ports pour le conteneur GitLab comme ci-dessous. Et assure-toi de changer le port SSH « 2224 » par ton port personnalisé et de le faire correspondre au port « gitlab_shell_ssh_port » en haut.

  ports:
    - '80:80'
    - '443:443'
    - '2224:22'

Après cela, définis le volume ou tes répertoires de données GitLab. Tous les répertoires de données GitLab sont disponibles dans le répertoire « GITLAB_HOME », qui est défini par la variable d’environnement dans le fichier « .env » en haut.

  volumes:
    - '${GITLAB_HOME}/config:/etc/gitlab'
    - '${GITLAB_HOME}/logs:/var/log/gitlab'
    - '${GITLAB_HOME}/data:/var/opt/gitlab'
    - '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'

Sauvegarde et ferme.

Voici la configuration complète.

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.hakase-labs.io'

  environment:
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
      external_url 'https://gitlab.hakase-labs.io'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
      nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"  

  ports:
    - '80:80'
    - '443:443'
    - '2224:22'

  volumes:
    - '${GITLAB_HOME}/config:/etc/gitlab'
    - '${GITLAB_HOME}/logs:/var/log/gitlab'
    - '${GITLAB_HOME}/data:/var/opt/gitlab'
    - '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'

Par conséquent, le script « docker-compose.yml » pour l’installation du projet GitLab a été créé.

Générer les certificats SSL et DHAPARAM

Dans cette étape, nous allons générer le SSL Letsencrypt pour notre installation GitLab.

Sur ton serveur, installe l’outil certbot à l’aide de la commande apt ci-dessous.

sudo apt install certbot

Ensuite, génère le certificat SSL pour GitLab à l’aide de la commande certbot ci-dessous.

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d gitlab.hakase-labs.io

Une fois que tout est terminé, tes certificats seront disponibles dans le répertoire ‘/etc/letsencrypt/live/gitlab.yourdomain’.

Copie maintenant le fichier de certificat « fullchain.pem » et « privkey.pem » dans le répertoire « /srv/gitlab/config/ssl/ ».

cp /etc/letsencrypt/live/gitlab.hakase-labs.io/fullchain.pem /srv/gitlab/config/ssl/
cp /etc/letsencrypt/live/gitlab.hakase-labs.io/privkey.pem /srv/gitlab/config/ssl/

Et le SSL Letsencrypt pour GitLab est prêt.

Ensuite, génère le certificat DHPARAM « dhparam.pem » à l’aide de la commande openssl ci-dessous.

sudo openssl dhparam -out /srv/gitlab/config/ssl/dhparams.pem 2048

Et tous les certificats pour l’installation de GitLab ont été générés, et nous sommes prêts à construire le conteneur GitLab.

Configurer SSL pour GitLab

Étape 3 – Construire le conteneur GitLab

Dans cette étape, nous allons construire notre conteneur GitLab en utilisant toute la configuration que nous avons créée au sommet, et en utilisant la commande docker-compose.

Avant d’aller plus loin, tu peux vérifier tous les fichiers disponibles dans le répertoire du projet « gitlab » et la structure du répertoire des données GitLab.

ls -lah ~/gitlab/
tree /srv/gitlab

Voici le résultat que tu obtiendras.

Configurer tous les fichiers pour le conteneur GitLab

Ensuite, va dans le répertoire de projet « ~/gitlab » et construis le conteneur GitLab à l’aide de la commande « docker-compose » ci-dessous.

cd ~/gitlab
docker-compose up -d

Une fois que tout est terminé, tu obtiendras le résultat ci-dessous.

Construire un conteneur Docker pour GitLab

Vérifie maintenant le conteneur en cours d’exécution et les ports « LISTEN » sur ton système Ubuntu à l’aide de la commande suivante.

docker-compose ps
ss -plnt

Et tu obtiendras que le conteneur« gitlab_web_1 » est en marche et que le port HTTP, HTTPS et SSH « 2224 » est utilisé par le conteneur GitLab.

Vérification du conteneur GitLab

Comme tu peux le voir, le conteneur GitLab est opérationnel et nous sommes prêts à configurer notre installation GitLab.

Étape 4 – Post installation de GitLab

Ouvre ton navigateur Web et tape l’URL de ton installation GitLab dans la barre d’adresse.

https://gitlab.hakase-labs.io/

Et tu obtiendras la page de réinitialisation du mot de passe GitLab.

GitLab Changer le mot de passe

Tape ton nouveau mot de passe pour l’utilisateur par défaut « root » et clique sur le bouton « Change your password ».

Tu obtiendras maintenant la page de connexion GitLab comme ci-dessous.

Page de connexion Gitlab en tant qu'utilisateur root par défaut

Connecte-toi avec l’utilisateur par défaut« root » et ton nouveau mot de passe, puis clique sur « Se connecter ».

Et tu obtiendras le tableau de bord GitLab comme ci-dessous.

Tableau de bord GitLab

Comme tu peux le voir, l’installation de GitLab à l’aide de docker et docker-compose est terminée.

Étape 5 – Configuration de base du conteneur GitLab

Après l’installation de GitLab, tu peux ajouter quelques configurations supplémentaires au conteneur GitLab sans détruire ce dernier. Pour cette étape, nous allons te montrer la manière basique de gérer le conteneur GitLab.

Avant d’aller plus loin, va dans le répertoire de projet « ~/gitlab » et vérifie l’état du conteneur à l’aide de la commande suivante.

cd ~/gitlab
docker-compose ps

Tu obtiendras que le conteneur GitLab est opérationnel.

Vérifier l’état des services GitLab à l’intérieur du conteneur

Pour vérifier tous les services GitLab à l’intérieur du conteneur Gitlab, utilise la commande « docker exec » comme ci-dessous.

sudo docker exec -it gitlab_web_1 gitlab-ctl status

Voici le résultat que tu obtiendras.

Le conteneur Gitlab vérifie l'état des services

Comme tu peux le voir, tous les composants du service GitLab sont opérationnels.

Accéder au conteneur GitLab

Pour accéder en SSH au conteneur GitLab, tu utilises la commande « docker exec » avec le shell « bash » à l’intérieur du conteneur comme ci-dessous.

sudo docker exec -it gitlab_web_1 /bin/bash

Vérifie maintenant la version Ubuntu par défaut du conteneur GitLab.

cat /etc/lsb-release

Tu verras que le conteneur GitLab est basé sur une Ubuntu 16.04 Xenial.

Connecte-toi à GitLab Container

Tape maintenant« exit » pour te déconnecter du conteneur GitLab.

Modifie la configuration de GitLab gitlab.rb

Ensuite, pour modifier la configuration de GitLab à l’intérieur du conteneur, tu peux utiliser l' »éditeur » par défaut sur le conteneur docker lui-même.

Modifie la configuration « /etc/gitlab/gitlab.rb » à l’intérieur du conteneur en utilisant la commande docker ci-dessous.

sudo docker exec -it gitlab_web_1 editor /etc/gitlab/gitlab.rb

Tu auras maintenant l’éditeur « nano » par défaut à l’écran, avec le fichier de configuration « gitlab.rb ».

Tape ta configuration, enregistre et quitte.

Ensuite, pour appliquer les nouvelles modifications à GitLab, redémarre le service de conteneur Gitlab à l’aide de la commande ci-dessous.

sudo docker restart gitlab_web_1

Assure-toi maintenant qu’il n’y a pas d’erreur, vérifie l’état du conteneur GitLab à l’aide de la commande suivante.

sudo docker-compose ps

Assure-toi maintenant que le conteneur GitLab est à l’état« Up (healty)« .

Configurer le conteneur GitLab

En conséquence, la nouvelle configuration pour GitLab a été appliquée.

Et enfin, l’installation de GitLab à l’aide de docker et docker-compose s’est terminée avec succès.

Vous aimerez aussi...