Docker 安装部署 Gitlab 存储路径迁移

1、迁移背景

  • 服务器磁盘空间已满
  • 需要更换服务器
  • Gitlab 无法正常启动
  • 其他异常需要重装

综上无论任何迁移背景,我们都需要保留历史数据

2、安装 Gitlab

2.1、Docker 安装部署 Gitlab

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

实践是检验真理的唯一标准,一键送三连关注不迷路。

猜你喜欢

转载自blog.csdn.net/u011374856/article/details/125614261
今日推荐