J'utilise GitLab dans Docker (parce que j'adore la containerisation) et je suis vraiment satisfait car je peux deplacer l'environnement GitLab partout si j'en ai besoin et je me sens plus elastique en utilisant Docker.

Les sauvegardes GitLab sont vraiment importantes car vous conservez tout le code source et peut-etre le wiki, peut-etre plus que le code source, et la sauvegarde est la premiere chose a faire si vous avez un service fonctionnant a un niveau critique.

Assurez-vous de votre commande docker run

J'execute mon GitLab dans Docker avec cet ensemble de commandes :

[ercan@gitlab ~]$ docker run --detach \
  --hostname gitlab.ercanermis.com \
  --publish 443:443 --publish 80:80 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

Prendre une Sauvegarde

La sauvegarde GitLab est vraiment facile. Voici la commande pour declencher le mecanisme de sauvegarde de GitLab.

docker exec gitlab gitlab-rake gitlab:backup:create DIRECTORY=gitlab

Mon script bash de sauvegarde Docker GitLab ressemble a ceci :

#!/bin/bash
#Auteur: Ercan Ermis - https://ercanermis.com

docker exec gitlab gitlab-rake gitlab:backup:create DIRECTORY=gitlab cp /srv/gitlab/config/gitlab.rb /srv/gitlab/data/backups/$(date +%F_%H-%M)gitlab.rb cp /srv/gitlab/config/gitlab-secrets.json /srv/gitlab/data/backups/$(date +%F%H-%M)_gitlab-secrets.json

Final : Automatisons la Sauvegarde

J'utilise le service AWS S3 pour garder mes sauvegardes de maniere securisee et redondante. Apres avoir cree votre fichier .sh, vous pouvez utiliser votre crontab pour declencher l'execution de votre propre /opt/gitlab-backup.sh