Uso GitLab in docker (perché amo la containerizzazione) e mi trovo davvero bene perché posso spostare l'ambiente GitLab ovunque se necessario e posso sentirmi più elastico quando uso docker.

I backup di GitLab sono davvero importanti perché conservi tutto il codice sorgente e forse wiki e forse più di tutto il codice sorgente, e il backup è la prima cosa se hai un servizio in esecuzione a un livello critico.

Prendi un backup e conosci il percorso di backup

In realtà il backup di GitLab è davvero facile. Ecco il comando per attivare il meccanismo di backup di GitLab.

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

Il comando di attivazione non è sufficiente perché dovresti fare anche il backup dei file gitlab.rb e gitlab-secrets.json situati nel percorso /srv/gitlab/config/. Preferisco copiare (con il comando cp) questi file nel percorso /srv/gitlab/data/backups/ perché gitlab-rake esporta nella stessa directory.

Il mio script bash di backup GitLab Docker si presenta così:

#!/bin/bash
#Author: 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

Finale: Automatizziamo il Backup

Uso il servizio AWS S3 per conservare i miei backup in modo sicuro e ridondante e quando il backup è completato, sincronizzo i file di backup su S3 con il comando aws s3 sync ed elimino il file di backup sul server.

#!/bin/bash
#Author: 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 aws s3 sync /srv/gitlab/data/backups/ s3://ercanermis-backup/gitlab/ && rm -rf /srv/gitlab/data/backups/*

Dopo aver creato il tuo file .sh, puoi usare il tuo crontab per attivare l'esecuzione del tuo /opt/gitlab-backup.sh