GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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. Il s'agit d'un gestionnaire de référentiel git basé sur le Web qui permet à votre équipe de collaborer sur le codage, le test et le déploiement d'applications. GitLab fournit plusieurs fonctionnalités, notamment des wikis, le suivi des problèmes, des révisions de code et des flux d'activités.

Dans ce tutoriel, nous allons vous montrer comment installer GitLab en utilisant Docker et Docker Compose. De plus, nous utiliserons Ubuntu 20.04 comme système d'exploitation principal et installerons docker à partir du référentiel officiel Ubuntu FocalFossa.

Prérequis

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

Qu'allons-nous faire ?

  • Installer Docker et Docker Compose
  • Configurer le projet GitLab Docker
  • Créer un conteneur GitLab
  • Post-installation de GitLab

Étape 1 - Installer Docker et Docker Compose

Tout d'abord, nous allons installer les packages docker et docker-compose sur notre système Ubuntu 20.04. Et nous utiliserons les packages docker fournis par le référentiel officiel Ubuntu FocalFossa.

Mettez à jour tous les référentiels vers la dernière version et installez 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émarrez le service Docker et ajoutez-le au démarrage du système.

systemctl start docker
systemctl enable docker

Ensuite, vérifiez le service Docker à l'aide de la commande systemctl ci-dessous.

systemctl status docker

En conséquence, le service docker est opérationnel sur le serveur Ubuntu 20.04.

Pour vérifier l'installation de docker, exécutez la commande docker "hello-world" ci-dessous.

docker run hello-world

Vous recevrez maintenant le message "hello-world" de docker comme ci-dessous.

Nous sommes maintenant prêts à installer GitLab à l'aide du conteneur docker et de 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éez un nouveau répertoire appelé 'gitlab' et allez-y.

mkdir -p gitlab; cd gitlab/

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

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

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éez un nouveau répertoire de données GitLab "/srv/gitlab" en utilisant la commande mkdir ci-dessous.

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

Ensuite, dans le répertoire du projet "gitlab", créez un nouveau fichier ".env" à l'aide de l'éditeur vim.

vim .env

Définissez la variable d'environnement "GITLAB_HOME" avec la valeur comme répertoire de données GitLab "/srv/gitlab" comme ci-dessous.

GITLAB_HOME=/srv/gitlab

Enregistrez et fermez.

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

Créer un script docker-compose.yml

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

Créez le nouveau fichier 'docker-compose.yml' à l'aide de la commande vim ci-dessous.

vim docker-compose.yml

Définissez le service nommé "web" avec l'image de la dernière version de "gitlab-ce", et changez le "hostname" avec votre nom de domaine GitLab.

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

Configurez l'environnement pour votre installation Gitlab comme ci-dessous. Et assurez-vous de changer le "external_url" avec le protocole sécurisé HTTPS, et changez le "gitlab_rails['gitlab_shell_ssh_port']" avec votre 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éfinissez les ports pour le conteneur GitLab comme ci-dessous. Et assurez-vous de changer le port SSH "2224" avec votre port personnalisé et de le faire correspondre avec le port "gitlab_shell_ssh_port" en haut.

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

Après cela, définissez le volume ou vos 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 la variable d'environnement sur 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'

Enregistrez et fermez.

Ci-dessous 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'

En conséquence, le script "docker-compose.yml" pour l'installation du projet GitLab a été créé.

Générer des certificats SSL et DHAPARAM

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

Sur votre serveur, installez l'outil certbot à l'aide de la commande apt ci-dessous.

sudo apt install certbot

Après cela, générez 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é, vos certificats seront disponibles dans le répertoire '/etc/letsencrypt/live/gitlab.yourdomain'.

Copiez 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érez 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 à créer le conteneur 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 en haut et en utilisant la commande docker-compose.

Avant d'aller plus loin, vous pouvez vérifier tous les fichiers disponibles dans le répertoire du projet "gitlab" et la structure du répertoire du répertoire GitLab Data.

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

Vous trouverez ci-dessous le résultat que vous obtiendrez.

Ensuite, allez dans le répertoire du projet "~/gitlab" et créez le conteneur GitLab à l'aide de la commande "docker-compose" ci-dessous.

cd ~/gitlab
docker-compose up -d

Une fois que tout est terminé, vous obtiendrez le résultat comme ci-dessous.

Vérifiez maintenant le conteneur en cours d'exécution et les ports "LISTEN" sur votre système Ubuntu à l'aide de la commande suivante.

docker-compose ps
ss -plnt

Et vous obtiendrez le conteneur "gitlab_web_1 " est opérationnel et vous avez le port HTTP, HTTPS et SSH "2224" utilisé par le conteneur GitLab.

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

Étape 4 - Post-installation de GitLab

Ouvrez votre navigateur Web et saisissez votre installation d'URL GitLab dans la barre d'adresse.

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

Et vous obtiendrez la page de réinitialisation du mot de passe GitLab.

Tapez votre nouveau mot de passe pour l'utilisateur par défaut "root" et cliquez sur le bouton "Modifier votre mot de passe".

Vous obtiendrez maintenant la page de connexion GitLab comme ci-dessous.

Connectez-vous avec l'utilisateur par défaut "root " et votre nouveau mot de passe, puis cliquez sur "Connexion".

Et vous obtiendrez le tableau de bord GitLab comme ci-dessous.

Comme on peut le voir, l'installation de GitLab à l'aide de docker et docker-compose est terminée.

Étape 5 - Conteneur GitLab de configuration de base

Après l'installation de GitLab, vous pouvez ajouter une configuration supplémentaire au conteneur GitLab sans détruire le conteneur GitLab. Pour cette étape, nous allons vous montrer la manière de base de gérer le conteneur GitLab.

Avant d'aller plus loin, allez dans le répertoire du projet "~/gitlab" et vérifiez l'état du conteneur à l'aide de la commande suivante.

cd ~/gitlab
docker-compose ps

Vous obtiendrez que le conteneur GitLab est opérationnel.

Vérifier l'état du service GitLab dans le conteneur

Pour vérifier tous les services GitLab à l'intérieur du conteneur Gitlab, utilisez la commande "docker exec" comme ci-dessous.

sudo docker exec -it gitlab_web_1 gitlab-ctl status

Vous trouverez ci-dessous le résultat que vous obtiendrez.

Comme on peut le voir, tous les composants du service GitLab sont opérationnels.

Accéder au conteneur GitLab

Pour SSH vers le conteneur GitLab, vous utilisez le "docker exec" avec le shell "bash" à l'intérieur du conteneur comme ci-dessous.

sudo docker exec -it gitlab_web_1 /bin/bash

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

cat /etc/lsb-release

Vous obtiendrez le conteneur GitLab basé sur un Ubuntu 16.04 Xenial.

Tapez maintenant "quitter " pour vous déconnecter du conteneur GitLab.

Modifier la configuration GitLab gitlab.rb

Ensuite, pour modifier la configuration GitLab à l'intérieur du conteneur, vous pouvez utiliser "l'éditeur" par défaut sur le conteneur docker lui-même.

Modifiez la configuration "/etc/gitlab/gitlab.rb" dans le conteneur à l'aide de la commande docker ci-dessous.

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

Vous obtiendrez maintenant l'éditeur "nano" par défaut à l'écran, avec le fichier de configuration "gitlab.rb".

Tapez votre configuration, enregistrez et quittez.

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

sudo docker restart gitlab_web_1

Assurez-vous maintenant qu'il n'y a pas d'erreur, vérifiez l'état du conteneur GitLab à l'aide de la commande suivante.

sudo docker-compose ps

Assurez-vous maintenant que le cotainer GitLab est sur le "Up (healty) " état.

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.


Ubuntu
  1. Comment installer Docker sur Ubuntu 22.04

  2. Comment installer Docker sur Ubuntu 22.04 / 20.04 LTS

  3. Comment installer ONLYOFFICE 8.9.0 avec Docker sur Ubuntu

  4. Comment installer le serveur Gitlab avec Docker sur Ubuntu 18.04 LTS

  5. Comment installer Docker sur Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

Comment installer WordPress avec Docker sur Ubuntu 16.04 LTS

Comment installer Rancher sur Ubuntu 16.04 LTS

Comment installer Docker sur Ubuntu 18.04 LTS

Comment installer Gitlab sur Ubuntu 18.04 LTS

Comment installer Docker sur Ubuntu 20.04 LTS

Comment installer Kitematic sur Ubuntu 20.04 LTS