1. 백업하기
$ sudo docker exec gogs /bin/bash -c "export USER=git && cd /app/gogs && ./gogs backup"
1.1. 백업파일 확인하기
- 도커 이미지로 접속
$ sudo docker exec -i -t gogs bash
- 백업파일이 저장된 경로로 이동한다.
# cd /app/gogs
- 백업파일이 생성되었는지 확인한다.
2. 복구하기
2.1. DB 복구하기
- "--database-only" 옵션이 없으면 오류가 발생하여 일단 DB만 복구하고 git data는 별도로 복구한다.
$ sudo docker exec gogs2 /bin/bash -c "export USER=git && cd /app/gogs && ./gogs restore --database-only --from /data/gogs/gogs-backup-20180227065816.zip"
2018/02/27 07:53:48 [ INFO] Restore backup from: /data/gogs/gogs-backup-20180227065816.zip
2018/02/27 07:53:49 [ INFO] Restore succeed!
* 간편 복구
1) gogs 백업파일을 gogs docker container에 복사
2) gogs docker에 터미널 접속
3) /app/gogs/ 경로로 이동
4) 스위치 유저 root -> git
5) gogs restore
* gogs 설정파일 위치
/data/gogs/conf/app.ini
2.2. git 복구하기.
- backup받은 zip파일의 압축 풀면 repositories.zip이라는 파일이 있다.
- repositories.zip 의 파일을 다시 압축을 풀면 "gogs-repositories"라는 디렉토리가 존재한다.
내부에 git history데이터를 가지고 있으며, 이 디렉토리를 gogs의 git data 위치로 복사해야 한다.
- volume마운트를 하지 않았을 경우 docker내부로 sftp로 파일을 전송하고,
"gogs-repositories" 디렉토리를 "/data/git/"로 복사한다.
- volume을 마운트 했을 경우 마운트한 경로의 git디렉토리에 "gogs-repositories" 디렉토리를 복사한다.
- 디렉토리를 복사 후 권한에따라 오류가 발생할수 있기 때문에 권한이나 소유자 설정에 유의해야 한다.
'Docker' 카테고리의 다른 글
docker mariadb 설치하고 접속해보기 (0) | 2020.01.30 |
---|---|
[Docker] GUI 모드로 Image 설치 및 Docker Container 실행-Kitematic (0) | 2020.01.19 |
Docker 취약점 분석 - trivy(작성중) (0) | 2020.01.10 |
Docker Image 관리에 대한 모든 것 (0) | 2020.01.09 |
ELK Docker 설치 (0) | 2020.01.07 |