Docker部署的Gitlab平行遷移到另一台服務器上


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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM