1、迁移背景
- 服务器磁盘空间已满
- 需要更换服务器
- Gitlab 无法正常启动
- 其他异常需要重装
综上无论任何迁移背景,我们都需要保留历史数据
2、安装 Gitlab
2.1、Docker 安装部署 Gitlab
3、迁移步骤
3.1、停止GitLab
为了防止在迁移存储库时,有用户写入数据,首先停止GitLab
# docker 停止 gitLab
docker stop gitlab
3.2、迁移数据
第一步,在新服务器创建 gitlab 目录(重新安装可忽略)
# 创建 gitlab 目录
mkdir -p /home/docker/gitlab
第二步,远程迁移数据(重新安装可忽略)
# 复制 gitlab 配置存放目录
scp -r /home/docker/gitlab/etc/ root@192.168.1.2:/home/docker/gitlab/
# 复制 gitlab 日志存放目录
scp -r /home/docker/gitlab/log/ root@192.168.1.2:/home/docker/gitlab/
# 复制 gitlab 数据存放目录
scp -r /home/docker/gitlab/data/ root@192.168.1.2:/home/docker/gitlab/
# 修改 gitlab 配置存放目录权限
chown -R 200 /home/docker/gitlab/etc
# 修改 gitlab 日志存放目录权限
chown -R 200 /home/docker/gitlab/log
# 修改 gitlab 数据存放目录权限
chown -R 200 /home/docker/gitlab/data
第四步,备份数据并删除原容器(已经备份可忽略)
切记备份历史数据,Gitlab 容器启动状态可执行如下命令复制数据
# 复制 gitlab 容器配置文件到指定目录
docker cp -a gitlab:/etc/gitlab /home/docker/gitlab/etc
# 复制 gitlab 容器日志文件到指定目录
docker cp -a gitlab:/var/log/gitlab /home/docker/gitlab/log
# 复制 gitlab 容器数据文件到指定目录
docker cp -a gitlab:/var/opt/gitlab /home/docker/gitlab/data
# 删除 gitlab 容器
docker rm -f gitlab
第五步,安装 Gitlab
# 安装并启动 gitlab
docker run -d -p 443:443 -p 80:80 \
--name gitlab \
--network woniu_network \
--ip 172.0.0.19 \
--restart unless-stopped \
-v /home/docker/gitlab/etc:/etc/gitlab \
-v /home/docker/gitlab/log:/var/log/gitlab \
-v /home/docker/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.0.1-ce.0
4、异常情况
4.1、文件权限异常
异常信息
Error executing action `run` on resource 'execute[/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions]'
解决方案
# 重新修改文件权限
docker exec -it gitlab update-permissions
# 重启 gitlab
docker restart gitlab
4.2、重新初始化配置
如果是其他异常导致无法正常启动,可以尝试重新初始化配置
# 重新初始化配置,该操作会还原历史配置信息
docker exec -it gitlab gitlab-ctl reconfigure
# 重启 gitlab
docker restart gitlab
实践是检验真理的唯一标准,一键送三连关注不迷路。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/78007.html