Docker部署的Gitlab平行迁移到另一台服务器上
2021-05-20 13:51 安达小狗 阅读(1242) 评论(0) 编辑 收藏 举报1、镜像保存
docker save gitlab/gitlab-ce:latest -o gitlab-ce.rar
2、将以上镜像拷贝到新服务器上,然后导入
docker load -i gitlab-ce.rar
3、数据拷贝
将原服务器上docker挂载的几个目录直接拷贝到新服务器
Gitlib/etc,Gitlib/log,Gitlib/data
4、容器启动
docker run --publish 10022:22 \
--publish 8090:8090 \
--name gitlab \
--privileged=true \
--restart always \
-v /seq_dir/Gitlib/etc:/etc/gitlab \
-v /seq_dir/Gitlib/log:/var/log/gitlab \
-v /seq_dir/Gitlib/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
5、参考https://zhuanlan.zhihu.com/p/354941496 处理一遍
6、查看各个服务状态
docker exec gitlab gitlab-ctl status
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | run: alertmanager: (pid 300) 176s; run: log: (pid 291) 176s down: gitaly: (pid 302) 176s; run: log: (pid 298) 176s run: gitlab-exporter: (pid 337) 176s; run: log: (pid 333) 176s run: gitlab-workhorse: (pid 305) 176s; run: log: (pid 304) 176s down: grafana: 1s, normally up, want up; run: log: (pid 296) 176s run: logrotate: (pid 295) 176s; run: log: (pid 292) 176s run: nginx: (pid 311) 176s; run: log: (pid 310) 176s run: postgres-exporter: (pid 341) 176s; run: log: (pid 338) 176s run: postgresql: (pid 303) 176s; run: log: (pid 301) 176s run: prometheus: (pid 309) 176s; run: log: (pid 299) 176s run: puma: (pid 294) 176s; run: log: (pid 293) 176s run: redis: (pid 290) 176s; run: log: (pid 287) 176s run: redis-exporter: (pid 340) 176s; run: log: (pid 339) 176s run: sidekiq: (pid 308) 176s; run: log: (pid 307) 176s run: sshd: (pid 30) 192s; run: log: (pid 29) 192s |
7、先解决:down: gitaly: (pid 302) 176s; run: log: (pid 298) 176s
进入容器删除:
进入容器:docker exec -it gitlab bash
rm /var/opt/gitlab/gitaly/gitaly.pid
8、解决:down: grafana: 1s, normally up, want up; run: log: (pid 296) 176s
进入容器,修改该文件夹权限
chown -R gitlab-prometheus:root /var/opt/gitlab/grafana/data
9、以上处理之后可以重启gitlab的容器,所有服务器都是run状态
docker restart gitlab
10、数据备份,也可以用crontab创建定时任务来定期进行备份
docker exec gitlab gitlab-rake gitlab:backup:create
通过备份数据恢复:
参考:https://www.cxyzjd.com/article/yaodunlin/96437668
(1)用1中保存的镜像文件,使用4中的命令启动gitlab docker服务,
(2)# 停止相关数据连接服务
docker exec gitlab gitlab-ctl stop unicorn
docker exec gitlab gitlab-ctl stop sidekiq
docker exec gitlab gitlab-ctl stop puma
(3)将备份文件放到 /seq_dir/Gitlib/data/backups/ 目录中,并开始恢复
chmod 777 1563430612_2019_07_18_11.0.4_gitlab_backup.tar
docker exec gitlab gitlab-rake gitlab:backup:restore BACKUP=1563430612_2019_07_18_11.0.4
(4)# 启动Gitlab
docker exec gitlab gitlab-ctl start
11、日志文件清理
容器日志文件一般存放在此目录中/var/lib/docker/containers/,du -sh 可以查看每个容器占用的空间,时间长了 gitlab会占用很大空间,因此最好定期清理一下
truncate -s 0 /var/lib/docker/containers/25c7d9d/25c7d9d-json.log
12、迁移之后,ip地址修改
参考:https://blog.csdn.net/ss300400a/article/details/100702054
(1)修改这个配置中的ip: /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
(2)修改:/etc/gitlab/gitlab.rb
(3)重启服务 restart 和 reconfigure
手动启动redis
docker exec gitlab gitlab-ctl start redis
权限原因导致的报错可以这样处理,好用:
docker exec -it gitlab update-permissions
docker exec -it gitlab gitlab-ctl reconfigure # 重新配置
docker restart gitlab 或者 docker exec -it gitlab gitlab-ctl restart
查看日志:
docker exec gitlab gitlab-ctl tail
参考:
https://zhuanlan.zhihu.com/p/354941496 主要参考
https://www.cnblogs.com/forlive/p/12469670.html 解决gitaly down的问题
https://zhuanlan.zhihu.com/p/354941496
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架