之前gitlab直接部署在一台服务器,现在想把它docker化并且跟jenkins放在一台服务器上,都用docker来运行。
1,在新的服务器上安装版本与老服务器一样的gitlab的docker版
老的服务器上的gitlab是gitlab-ce:15.2.2
所以在新的服务器上去拉这个版本的docker
docker pull gitlab/gitlab-ce:15.2.2-ce.0
之前的端口是8099,这次在新的服务器上docker部署也想用这个端口,所以
docker run -d -p 8443:443 -p 8099:80 -p 8022:22 --name gitlab --restart always -v /var/gitlab/config:/etc/gitlab -v /var/gitlab/logs:/var/log/gitlab -v /var/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:15.2.2-ce.0
完成后可以看到 docker ps下,这个docker已经跑起来了。
然后进入docker里面,
docker exec -it gitlab /bin/bash
# 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
host: 192.168.6.205
port: 8099 # 这里改为3000
https: false
# 让配置生效
gitlab-ctl reconfigure
# 重启 gitlab-ctl restart # 退出容器 exit
这时可以看到 gitlab已经可以被访问了。
2,把老的服务器上的gitlab数据备份一下,然后还原到新的服务器的docker里面
具体参考这里 https://22vps.com/p/72oqezD
值得注意的是,要将老的数据拷贝进docker
docker cp /var/gitlab/1661696347_2022_08_28_15.2.2_gitlab_backup.tar a55ee7d0af66:/opt/gitlab/1661696347_2022_08_28_15.2.2_gitlab_backup.tar
然后还原备份的时候,后面的_gitlab_backup.tar是不写的,否则一直说找不到文件。
gitlab-rake gitlab:backup:restore BACKUP=1661696347_2022_08_28_15.2.2_gitlab_backup.tar
还原后基本就ok了,记录一下
PS:还有一个文件要复原,那就是gitlab-secrets.json,否则会有各种500错误