본 문서는 GitLab 설치 시 사용했던 docker-compose 내용을 바탕으로 진행함.
우선 gitlab을 동작시키고 있다면 docker-compose down
명령어로 컨테이너를 종료시킨다.
(docker-compose.yml에 백업 설정을 추가로 해줘야 하기 때문)
아래 3라인을 추가한다.
# gitlab backup파일 저장 시간 2592000sec -> 30days
gitlab_rails['backup_keep_time'] = 2592000
gitlab_rails['backup_path'] = '/usr/local/backup'
변경된 docker-compose.yml
파일은 아래와 같다.
version: '3.9'
services:
gitlab:
image: "gitlab/gitlab-ce:latest"
container_name: 'container_name'
restart: always
hostname: "gitlab.iasdf.com" # hostname
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url '<http://gitlab.iasdf.com>' # 외부 ip 혹은 접근할 ip
# gitlab ssh port
gitlab_rails['gitlab_shell_ssh_port'] = 22
# gitlab backup파일 저장 시간 2592000sec -> 30days
gitlab_rails['backup_keep_time'] = 2592000
gitlab_rails['backup_path'] = '/usr/local/backup'
# Add any other gitlab.rb configuration here, each on its own line
TZ: 'Asia/Seoul'
ports:
- "80:80" # http 접근포트
- "443:443" # https 접근포트
- "22:22" # ssh 접근포트
volumes:
- "/gitlab/config:/etc/gitlab"
- "/gitlab/logs:/var/log/gitlab"
- "/gitlab/data:/var/opt/gitlab"
- "/mnt/gitlab_backup:/usr/local/backup"
docker-compose up -d 명령어를 통해 깃랩 컨테이너를 다시 실행시킨다.
gitlab 컨테이너 내부에서 gitlab-backup create
명령어를 통해 백업을 진행할 수 있다.
docker exec -it <container_name> bash
gitlab-backup create
# docker exec -t <container_name> gitlab-backup create 도 가능.
docker-compose.yml에서 설정한 backup_path 경로에 (timestamp 값)_(gitlab 버전)_gitlab_backup.tar
파일이 생성된다.
필자는 컨테이너의 backup_path를 호스트의 /mnt/gitlab_backup
으로