前期准备

数据备份
记录gitlab运行命令:
docker run -itd --name gitlab \
--hostname gitlab.suniot.cn \
-p 443:443 -p 10022:22 -p 10080:80 \
-v /home/docker/gitlab/config:/etc/gitlab \
-v /home/docker/gitlab/logs:/var/log/gitlab \
-v /home/docker/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:14.1.2-ce.0 备份数据库和配置文件
docker exec -t gitlab gitlab-rake gitlab:backup:create
备份的文件在
/home/docker/gitlab/data/backups

迁移到目标服务器

新的服务器上运行gitlab
docker run -itd --name gitlab \
--hostname gitlab.suniot.cn \
-p 443:443 -p 10022:22 -p 10080:80 \
-v /home/docker/gitlab/config:/etc/gitlab \
-v /home/docker/gitlab/logs:/var/log/gitlab \
-v /home/docker/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:14.1.2-ce.0 正常启动后停止
docker stop gitlab 复制备份的文件到新服务器上
scp /home/docker/gitlab/data/backups/1636695916_2021_11_12_14.1.2_gitlab_backup.tar root@172.16.77.88:/home/docker/data/gitlab/data/backups
配置文件需要手动备份,传到新服务器上
scp /home/docker/gitlab/config/* root@172.16.77.88:/home/docker/data/gitlab/config 启动服务 docker start gitlab
还原备份
# 进入容器
docker exec -it gitlab /bin/bash
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq # 验证
gitlab-ctl status #还原备份文件
gitlab-rake gitlab:backup:restore BACKUP=1636695916_2021_11_12_14.1.2
#注意unpacking backup failed报错,文件权限问题
chmod 777 1636695916_2021_11_12_14.1.2_gitlab_backup.tar
    #重启并验证
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
验证项目是否迁移成功

官方文档:报500错误设置

https://docs.gitlab.com/ee/raketasks/backup_restore.html#troubleshooting

docker升级gitlab
例子gitlab版本14.1.8>14.2.6
首先停掉 gitlab/gitlab-ce:14.1.8-ce.0版本的docker
docker stop gitlab-14.1.8
基于gitlab-14.1.8挂载的目录去启动gitlab/gitlab-ce:14.2.6-ce.0 docker run -itd --name gitlab-14.2.6 \
--hostname gitlab.xxx.cn \
-p 1443:443 -p 1022:22 -p 1080:80 \
-v /data/docker/gitlab/config:/etc/gitlab \
-v /data/docker/gitlab/logs:/var/log/gitlab \
-v /data/docker/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:14.2.6-ce.0 docker logs gitlab-14.2.6
错误提示:
caller=main.go:733 err="opening storage failed: get segment range: segments are not sequential"
解决方法:
rm -Rf /var/opt/gitlab/prometheus/data/wal
gitlab-ctl restart prometheus
gitlab-ctl status 删除项目报500
gitlab-rails dbconsole --database main
update projects set runners_token = null,runners_token_encrypted = null; 保存项目设置报500
OpenSSL::Cipher::CipherError
原因: 没有导入原来的加密信息/etc/gitlab/gitlab-secrets.json导致,重置下即可。
解决办法:
输入gitlab-rails console,等待进入rails控制台
输入ApplicationSetting.current.reset_runners_registration_token!,显示结果为true,exit退出重新保存

当启动失败时更新文件权限
If this container fails to start due to permission problems try to fix it by executing:
docker exec -it gitlab update-permissions
docker restart gitlab

如果用到nginx代理需要添加 client_max_body_size 100m;推送文件大小 ,gitlab设置推送大小,配置文件里修改大小 三处需要修改   git推送大文件报413

client_max_body_size 50m; # 限制请求体的大小,若超过所设定的大小,返回413错误,默认1m
client_header_timeout 1m; # 读取请求头的超时时间,若超过所设定的大小,返回408错误
client_body_timeout 1m; # 读取请求实体的超时时间,若超过所设定的大小,返回413错误
proxy_connect_timeout 60s; # http请求无法立即被容器(tomcat, netty等)处理,被放在nginx的待处理池中等待被处理。此参数为等待的最长时间,默认为60秒,官方推荐最长不要超过75秒
proxy_read_timeout 1m; # http请求被容器(tomcat, netty等)处理后,nginx会等待处理结果,也就是容器返回的response。此参数即为服务器响应时间,默认60秒
proxy_send_timeout 1m; # http请求被服务器处理完后,把数据传返回给Nginx的用时,默认60秒

最新文章

  1. win7系统下 自带的定时关机
  2. 给numpy矩阵添加一列
  3. geotrellis使用(七)记录一次惨痛的bug调试经历以及求DEM坡度实践
  4. validate 的插件用法
  5. Unity ShaderLab学习总结
  6. js 当前日期处理 获取
  7. shell uniq sort -u 去重排序
  8. PHP做支付宝即时到账需注意
  9. Ext.Net 使用总结之GridPanel的删除事件
  10. .NET连接SAP系统专题:.NET调用RFC几种方式(一)
  11. 使用Groovy处理SoapUI中Json response
  12. JAVAscript学习笔记 js计时器与倒计时 第六节 (原创) 参考js使用表
  13. java求素数
  14. shell脚本判断安装包位置及类型
  15. VS2015中配置Eigen
  16. HTML学习笔记08-表格
  17. 015-Go 数据库操作注意事项
  18. spring+hibernate 下载
  19. 基于OpenGL编写一个简易的2D渲染框架-11 重构渲染器-Renderer
  20. afinal框架下 ViewInject的使用

热门文章

  1. vscode 开发Vue项目
  2. 暑假学习6 hdfs shell命令
  3. XML报文解析
  4. JavaScript垃圾回收机制的了解
  5. 记录一次排查OOM的过程
  6. curl从入门到精通教程
  7. js遍历出数组重复的数据,及重复的个数(简单有效)
  8. 解决eclipse创建动态Web项目没有Web->Dynamic Web Project问题
  9. linux修改网络
  10. R语言原生管道绘图