需要将现有的gitlab迁移到docker中去。
先在docker中安装gitlab,为了兼容性,安装相同版本的gitlab.
https://github.com/sameersbn/docker-gitlab
在旧服务器上执行备份操作,并将备份文件拷贝过来。
gitlab-rake gitlab:backup:create
gitlab-rake gitlab:backup:create scp -P2202 1516851496_2018_01_25_10.1.4_gitlab_backup.tar root@127.0.0.1:/docker/gitlab/gitlab/backups
注意这个压缩包要在目标服务器上给于读取权限,不然恢复备份会报解压失败错误。
cd gitlab_backup_path chmod a+r 1516851496_2018_01_25_10.1.4_gitlab_backup.tar
在docker服务器停止且只停止gitlab服务,保留redis和postgresql
docker rm -f gitlab_gitlab_1
我是用docker-compose安装的gitlab,但是用docker-compose run 去执行恢复备份一直有问题。这里用原生的docker命令去执行
docker run --rm -it \ --network gitlab_default \ -e "DB_ADAPTER=postgresql" \ -e "DB_HOST=postgresql" \ -e "DB_PORT=5432" \ -e "DB_USER=gitlab" \ -e "DB_PASS=password" \ -e "DB_NAME=gitlabhq_production" \ -e "REDIS_HOST=redis" \ -e "REDIS_PORT=6379" \ -e "GITLAB_SECRETS_DB_KEY_BASE=XXXXXXXXXXXXXXXXXXXXXXX" \ -e "GITLAB_SECRETS_SECRET_KEY_BASE=XXXXXXXXXXXXXXXXXXXXXXX" \ -e "GITLAB_SECRETS_OTP_KEY_BASE=XXXXXXXXXXXXXXXXXXXXXXX" \ --volume /docker/gitlab/gitlab:/home/git/data \ sameersbn/gitlab:10.1.4 app:rake d docker run --rm -it \ --network gitlab_default \ -e "DB_ADAPTER=postgresql" \ -e "DB_HOST=postgresql" \ -e "DB_PORT=5432" \ -e "DB_USER=gitlab" \ -e "DB_PASS=password" \ -e "DB_NAME=gitlabhq_production" \ -e "REDIS_HOST=redis" \ -e "REDIS_PORT=6379" \ -e "GITLAB_SECRETS_DB_KEY_BASE=XXXXXXXXXXXXXXXXXXXXXXX" \ -e "GITLAB_SECRETS_SECRET_KEY_BASE=XXXXXXXXXXXXXXXXXXXXXXX" \ -e "GITLAB_SECRETS_OTP_KEY_BASE=XXXXXXXXXXXXXXXXXXXXXXX" \ --volume /docker/gitlab/gitlab:/home/git/data \ sameersbn/gitlab:10.1.4 app:rake gitlab:backup:restore
重启所有服务
docker-compose up --force-recreate -d
迁移完成!