開篇一張圖
-
1.gitlab跑在黑群暉的docker中,先確定對應的版本和服務,gitlab為同版本遷移;
如:我的gitlab用到了psql和redis
sameersbn/postgresql:12-20200524
sameersbn/redis:4.0.9-1
sameersbn/gitlab:13.12.2
-
2.然后先在黑群暉中備份已有項目
在gitlab實例shell中運行
bundle exec rake gitlab:backup:create RAILS_ENV=production
從gitlab/backups將備份文件拷貝到臨時位置方便后續恢復
-
3.新機器中拉取鏡像 方便后續使用
docker pull sameersbn/postgresql:12-20200524
docker pull sameersbn/redis:4.0.9-1
docker pull sameersbn/gitlab:13.12.2
-
4.分別部署容器實例
docker run --name=synology_gitlab_postgresql -d -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab_user' -e 'DB_PASS=password' -e 'DB_EXTENSION=pg_trgm,btree_gist' -v /mnt/d/docker/postgresql:/var/lib/postgresql sameersbn/postgresql:12-20200524
docker run --name='gitlab' -d --link synology_gitlab_redis:redisio -v /mnt/d/docker/gitlab/data:/home/git/data -p 30022:22 -p 30080:80 -e 'GITLAB_PORT=30080' -e 'GITLAB_SSH_PORT=30022' --link synology_gitlab_postgresql:postgresql -e 'GITLAB_EMAIL=landwind1180@gmail.com' -e 'GITLAB_BACKUPS=daily' -e 'GITLAB_HOST=192.168.123.186' -e 'GITLAB_SIGNUP=true' -e 'GITLAB_GRAVATAR_ENABLED=false' -e 'GITLAB_SECRETS_SECRET_KEY_BASE=ADeKlXsdUH18a2BNYYeuTKdSV4yycQNVbbvTPF3ShPP2KF0nBAjAfT9paBpiZu24' -e 'GITLAB_SECRETS_DB_KEY_BASE=8c2943pzWnd30xt2UAMIG0XxCsY1jG8pdXfTQ1FZt77cWrarzqVsYd4y54wAUpGG' -e 'GITLAB_SECRETS_OTP_KEY_BASE=DVyFWY1nSVTxaOy9poddPSDWcjeFPT9Eb2gvKJ8LyRbBA8BJoDVGJAjlHScnulOy' sameersbn/gitlab:13.12.2
-
5.測試gitlab是否正常啟動
打開localhost:30080
-
6.測試正常后還原備份
先將備份文件拷貝到 gitlab/data/backups 目錄下的,我用的wsl跑docker,可以在windows下直接復制,其他宿主可用docker cp 拷貝。
# shell中執行,等待恢復完成
# 此過程耗時按項目多寡決定,稍等片刻即可
bundle exec rake gitlab:backup:restore RAILS_ENV=production
等待出現上圖即表示成功,打開網站查看即可。