docker gitlab迁移 备份 部署 搭建以及各种问题
2022/6/2 23:23:06
本文主要是介绍docker gitlab迁移 备份 部署 搭建以及各种问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
当前环境
- 服务器A
- 服务器B
- ubuntu
- docker
- gitlab(版本一致)
docker安装gitlab
由于考虑到gitlab 包含了⾃身的nginx、数据库、端⼝占⽤等等因数,这⾥使⽤的是docker安装; 如何安装docker? 这里暂不概述
拉取gitlab image
# gitlab-ce为稳定版本,后⾯不填写版本则默认pull最新latest版本 docker pull gitlab/gitlab-ce
启动gitlab
sudo docker run --detach \ --hostname www.example.com \ --publish 8091:80 --publish 8022:22 \ --name gitlab \ --restart always \ --volume /mnt/gitlab/config:/etc/gitlab \ --volume /mnt/gitlab/logs:/var/log/gitlab \ --volume /mnt/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce
- --hostname 配置gitlab 服务器域名
- --publish 配置容器 端⼝映射 容器80端⼝->宿主机8091
- --name 容器名
- --restart 配置重启指令
- --volume 配置容器⽬录映射 --volume /mnt/gitlab/config:/etc/gitlab 容器中 / etc/gitlab 映射到宿主机⾥的 /mnt/gitlab/config
配置:/etc/gitlab.rb
进⼊docker docker exec -it <容器ID> 进⼊ /etc/gitlab/gitlab.rb 空⽩处加上
#gitlab服务器访问地址 external_url 'http://gitlab.example.com' #gitlab ssh端⼝ gitlab_rails['gitlab_shell_ssh_port'] = 8022
重启gitlab
gitlab-ctl reconfigure gitlab-ctl restart
nginx反向代理
由于gitlab 容器映射的端⼝不是80端⼝,所以需要在宿主机上做⼀层反向代理:将 www.example.com 域名请求代理到本机的8091端⼝
#宿主机配置反向代理 server { listen 80; server_name www.exanple.com location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://127.0.0.1:8091$request_uri; proxy_redirect off; } }
docker迁移gitlab
首先保证服务器A 和 服务器B 的gitlab版本一致,建议用同一个images
假设现在要把服务器A的gitlab全部迁移至服务器B
备份gitlab
进入服务器A镜像
docker exec -it gitlab /bin/bash
停止项目,主要目的是为了防止有人提交代码
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
备份
gitlab-rake gitlab:backup:create
这里会得到一个压缩包。路径在/mnt/gitlab/data/backups/1654170874_2022_06_02_11.1.4_gitlab_backup.tar
下载压缩包上传到服务器B
下面操作服务器B
把压缩包放到/mnt/gitlab/data/backups目录下面
chmod +x 1654170874_2022_06_02_11.1.4_gitlab_backup.tar 防止gitlab操作没有权限。这里加上可操作权限
进入服务器A镜像
docker exec -it gitlab /bin/bash
停止项目,主要目的是为了防止有人提交代码
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
gitlab自动生成表格
gitlab-rake gitlab:backup:restore BACKUP=1654170874_2022_06_02_11.1.4
这里一直yes下去就行。大概3-5分就完成了。主要看服务器配置
重启
gitlab-ctl restart gitlab-rake gitlab:check SANITIZE=true
完成
问题
docker安装gitlab完成之后访问一直是504 time out怎么办?
猜测应该是腾讯云服务器,腾讯云服务器的网段跟docker冲突。可以进入gitlab容器里面curl 127.0.0.1看下是否能ping通,正常是可以的。然后ping baidu.com就无法ping通。同时:docker无法映射端口也可以看下是否是这个问题导致
# 解决方案 在宿主机 vim /etc/docker/daemon.json 有这个文件就追加"bip": "192.168.1.5/24" 没有就直接生成{"bip": "192.168.1.5/24"}即可 参考:https://qq52o.me/2766.html
这篇关于docker gitlab迁移 备份 部署 搭建以及各种问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27docker容器内没有bash,怎么通过docker exec -it进入容器内部?-icode9专业技术文章分享
- 2024-12-26alpine构建的镜像无法使用docker exec -it 进入内部怎么办?-icode9专业技术文章分享
- 2024-12-24Docker环境部署资料详解
- 2024-12-24Docker环境部署教程:新手入门详解
- 2024-12-24Docker环境部署项目实战教程
- 2024-12-24Docker环境部署学习:初学者指南
- 2024-12-24Docker环境部署入门:新手必读指南
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解