Docker에서 작동하는 GitLab을 매일 백업하기
Docker에서 GitLab 백업을 자동화하는 방법을 배운다. 리포지토리 보안을 위해 백업을 만들어야 한다. 프로세스를 자동화하자.

Docker에서 GitLab을 사용 중이며(컨테이너화를 좋아하기 때문에), Docker를 사용할 때 더 탄력적으로 느껴지고 필요하면 GitLab 환경을 어디로든 이동할 수 있기 때문에 정말 만족한다.
GitLab 백업은 모든 소스 코드와 Wiki, 어쩌면 소스 코드 이상을 보관하고 있기 때문에 정말 중요하며, 중요한 수준에서 실행 중인 서비스가 있다면 백업이 첫 번째로 해야 할 일이다.
Docker 컨테이너 이름 확인하기
다음 명령으로 GitLab을 Docker에서 실행한다:
[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백업하기
docker exec gitlab gitlab-rake gitlab:backup:create DIRECTORY=gitlab또한 /srv/gitlab/config/ 경로에 있는 gitlab.rb와 gitlab-secrets.json 파일도 백업해야 한다.
자동화 스크립트
#!/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/*
crontab을 사용하여 /opt/gitlab-backup.sh를 주기적으로 실행하도록 설정하면 된다.
Ercan의 다른 글
같은 저자, 다른 영역의 사이트 두 개.