Faca o backup do seu GitLab diariamente se ele funciona em Docker
Aprenda como automatizar o backup do seu GitLab em Docker. Voce deve fazer backup para a seguranca do seu repositorio. Vamos automatizar o processo...

Estou usando GitLab em docker (porque adoro containerizacao) e estou muito satisfeito com isso porque posso mover o ambiente GitLab para qualquer lugar se precisar e posso me sentir mais elastico quando uso docker.
Os backups do GitLab sao realmente muito importantes porque voce esta mantendo todo o codigo fonte e talvez wiki, talvez mais que todo o codigo fonte, e o backup e a primeira coisa se voce tem um servico rodando em nivel critico.
Certifique-se sobre seu comando docker run
Eu executo meu GitLab em docker com este conjunto de comandos:
[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:latestPrimeiro, precisamos saber qual e o nome do container docker do GitLab. Na minha configuracao, estou usando GitLab Community Edition e dei o nome de "gitlab" para o docker. Se voce nao sabe o nome do docker do seu gitlab, ha uma maneira facil de descobrir.
[ercan@gitlab ~]$ docker ps -a | grep gitlab-ceA ultima coluna mostra o nome do container docker. Aqui esta a saida:
9c787206fbda gitlab/gitlab-ce:latest "/assets/wrapper" 8 hours ago Up 8 hours (healthy) 0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp gitlabFazer um backup e saber o caminho do backup
Na verdade, o backup do GitLab e realmente facil. Aqui esta o comando para acionar o mecanismo de backup do GitLab.
docker exec gitlab gitlab-rake gitlab:backup:create DIRECTORY=gitlabO comando de acionamento nao e suficiente porque voce deve fazer backup dos arquivos gitlab.rb e gitlab-secrets.json localizados no caminho /srv/gitlab/config/. Prefiro copiar (com comando cp) esses arquivos para o caminho /srv/gitlab/data/backups/ porque o gitlab-rake exporta para o mesmo diretorio.
Meu script bash de Backup GitLab Docker se parece com isso:
#!/bin/bash
#Autor: 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
Quais arquivos voce tem apos executar o backup bash?
O gitlab gera o nome do arquivo de backup como 1600262658_2020_09_16_13.3.6_gitlab_backup.tar. Isso significa epochtime_ano_mes_dia_versaoGitlab_gitlab_backup.tar. Essa e a razao pela qual uso a funcao $date ao copiar gitlab.rb e gitlab-secrets.json para a pasta /srv/gitlab/data/backups/.
Estou usando o servico S3 da aws para manter meus backups com seguranca e redundancia e, quando o backup e concluido e fica pronto em /srv/gitlab/data/backups/, estou sincronizando os arquivos de backup para o S3 com o comando aws s3 sync /srv/gitlab/data/backups/ s3://ercanermis-backup/gitlab/ e excluindo o arquivo de backup no servidor.
Voce tambem pode usar sua propria solucao para manter seu backup redundante e seguro, como SMB, sFTP ou outra solucao de armazenamento em bloco de outro provedor.
Final: Vamos Automatizar o Backup
Aqui esta o bash final para automatizar o GitLab Docker Backup localizado em /opt/gitlab-backup.sh
#!/bin/bash
#Autor: 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/*
Apos criar seu arquivo .sh, voce pode usar seu crontab para acionar a execucao de seu proprio /opt/gitlab-backup.sh
Mais de Ercan
Mais dois sites, mesmo autor, terreno diferente.
IA, LLMs, agentes, ML aplicado.
Notas de campo sobre cargas de IA. Análise de custos do Bedrock, padrões de agentes, trade-offs de armazenamento vetorial, modos de falha em produção.
Visitar ercan.ai →O hub. Sobre, consultoria, contato.
Hub pessoal para as duas trilhas de escrita. Quem sou eu, como funciona a consultoria, como me contatar.
Visitar ercanermis.com →