群晖gitlab备份迁移

开篇一张图

群晖gitlab备份迁移插图

  • 1.gitlab跑在黑群晖的docker中,先确定对应的版本和服务,gitlab为同版本迁移;

    如:我的gitlab用到了psql和redis

sameersbn/postgresql:12-20200524 sameersbn/redis:4.0.9-1 sameersbn/gitlab:13.12.2
 sameersbn/postgresql:12-20200524 sameersbn/redis:4.0.9-1 sameersbn/gitlab:13.12.2 
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
 bundle exec rake gitlab:backup:create RAILS_ENV=production 
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
 docker pull sameersbn/postgresql:12-20200524 docker pull sameersbn/redis:4.0.9-1 docker pull sameersbn/gitlab:13.12.2 
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
 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 
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
 # shell中执行,等待恢复完成 # 此过程耗时按项目多寡决定,稍等片刻即可 bundle exec rake gitlab:backup:restore RAILS_ENV=production 
# shell中执行,等待恢复完成 # 此过程耗时按项目多寡决定,稍等片刻即可 bundle exec rake gitlab:backup:restore RAILS_ENV=production

群晖gitlab备份迁移插图1

等待出现上图即表示成功,打开网站查看即可。

原文链接:https://www.cnblogs.com/LandWind/p/15853471.html

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享