Docker

[docker] gitlab - backup 수행하기

채윤아빠 2023. 6. 15. 09:32
728x90
반응형

개요

도커 컨테이너로 운영중인 GitLab의 자료를 백업하는 방법을 알아 보겠습니다.

 

크게 보면 두 가지 방법이 있습니다.

 

첫 번재는 GitLab 컨테이너로 마운트한 "data" 폴더 등을 "tar" 명령 등을 이용하여 백업하는 방법입니다.
두 번째는 GitLab 컨테이너 내부에 "gitlab-rake" 명령으로 직접 백업하는 방법입니다.


마운트 폴더 백업

운영중인 GitLab 컨테이너를 중지합니다.

docker stop gitlab && docker rm gitlab

마운트된 폴더를 통째로 압축 백업합니다.

cd /home/service
tar cfz gitlab-14.1.8.tgz gitlab/

백업이 완료된 이후에 GitLab 컨테이너를 다시 구동합니다.


"gitlab-rake" 명령을 이용한 백업

운영중인 GitLab 컨테이너 내부 콘솔을 띄웁니다.

docker exec -it gitlab bash

GitLab 내부 콘솔에서 "/etc/gitlab/gitlab.rb" 파일에서 "backup_path"가 포함된 2 줄의 주석을 해제합니다.

gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

설정을 변경한 후에 "gitlab-rake gitlab:backup:create" 명령을 수행하면 백업 파일이 생성됩니다.
백업 파일은 압축되지 않은 "*.tar" 형식이라 파일이 큽니다. 백업을 수행하기 전에 디스크 공간이 충분한지 확인한 후에 백업을 수행합니다.

gitlab-rake gitlab:backup:create

Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... [DONE]
done
Dumping repositories ...
done
Dumping uploads ... 
done
Dumping builds ... 
done
Dumping artifacts ... 
done
Dumping pages ... 
done
Dumping lfs objects ... 
done
Dumping container registry images ... 
[DISABLED]
Creating backup archive: 1704778692_2023_06_09_14.1.8_gitlab_backup.tar ... done
Uploading backup archive to remote storage  ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
done
Deleting old backups ... skipping
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
Backup task is done.

참고자료