Prérequis
- Un serveur Linux (Debian, Ubuntu)
- Docker et Docker Compose installés
- Nom de domaine (ex : gitlab.example.com) pointant vers le serveur
- Ports 80, 443 et 22 ouverts
Déploiement de GitLab CE
1. Créer le fichier docker-compose.yml
version: '3.8'
services:
web:
image: gitlab/gitlab-ce:latest
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 22
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- gitlab-config:/etc/gitlab
- gitlab-logs:/var/log/gitlab
- gitlab-data:/var/opt/gitlab
volumes:
gitlab-config:
gitlab-logs:
gitlab-data:
2. Lancer GitLab
docker-compose up -d
Attendez quelques minutes que GitLab soit accessible sur https://gitlab.example.com
.
Configuration initiale
- Changez le mot de passe
root
- Configurez les runners partagés (GitLab Runner)
- Ajoutez vos projets et invitez vos équipes
Planification des sauvegardes
1. Créer le script de sauvegarde /root/gitlab_backup.sh
#!/bin/bash
TIMESTAMP=$(date +'%Y%m%d_%H%M%S')
docker exec gitlab gitlab-backup create STRATEGY=copy
docker cp gitlab:/var/opt/gitlab/backups/* /backup/gitlab/$TIMESTAMP/
find /backup/gitlab/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
Rendez-le exécutable :
chmod +x /root/gitlab_backup.sh
2. Créer une tâche cron
0 3 * * * /root/gitlab_backup.sh >> /var/log/gitlab_backup.log 2>&1
Restauration
# Choisir une sauvegarde
export BACKUP=1654320000_2025_07_26_03_00_00
docker exec gitlab gitlab-backup restore BACKUP=$BACKUP
Bonnes pratiques
- Sécuriser l’accès HTTPS (Let's Encrypt ou certif. personnalisés)
- Surveiller l’état du conteneur (Healthcheck)
- Monitorer les metrics via Prometheus exporter
- Stocker les backups sur un stockage externe (S3, NFS)
- Mettre à jour l’image régulièrement
Conclusion
Avec Docker Compose, déployez rapidement GitLab CE en auto‑hébergement et assurez une continuité de service grâce à des sauvegardes automatisées.