2020-09-03 12:57:09
在飞牛OS使用Docker安装GitLab报错,主要问题是数据卷固化到非根目录时容器会一直重启,解决方法如下:
一、问题原因当尝试将GitLab的数据卷(如/usr/local/gitlab/data)映射到非根目录(如自定义路径)时,容器会因权限或配置冲突持续重启。根本原因是GitLab容器启动时依赖的某些文件或目录在非根目录下无法正确初始化,而固化到根目录(如/var/opt/gitlab)可避免此问题。
二、具体解决步骤初始固化到根目录在启动Docker容器时,先将数据卷映射到根目录下的默认路径(如-v /var/opt/gitlab:/var/opt/gitlab),确保容器能正常启动并完成初始化。
修改配置文件中的IP和端口进入容器后,编辑配置文件vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml,将文件中的host和port修改为飞牛OS的实际IP和端口(如HTTP端口80或自定义端口)。此步骤是关键,未修改会导致外部访问失败或容器重启。
拷贝数据到目标目录在容器正常运行后,使用pc -rp命令(或cp -r)将根目录下的GitLab数据(如/var/opt/gitlab)拷贝到目标目录(如/usr/local/gitlab/data)。需确保目标目录存在且权限正确(建议使用chmod -R 755调整权限)。
重启容器前快速执行命令通过docker exec -it gitlab /bin/bash进入容器,立即执行gitlab-ctl restart重启GitLab服务。必须在容器启动后的短时间内完成此操作,避免容器因检测到数据卷变化而自动重启。等待命令执行完成后,退出容器。
验证容器状态使用docker ps检查容器是否正常运行,若无重启现象且可通过配置的IP和端口访问GitLab,则问题解决。