问题描述
在运行Docker容器时遇到了问题,系统环境是Ubuntu 18.04.2 LTS,Docker版本是18.09.5,Gitlab版本是gitlab-ee=12.0.3-ee.0。用户尝试使用以下命令启动Gitlab容器,但容器在启动20秒后重启并进入无限循环:
docker run -i \
--hostname gitlab2.michael-thompson.net \
--name gitlab \
--restart unless-stopped \
--volume /docker/gitlab/config:/etc/gitlab:Z \
--volume /docker/gitlab/log:/var/log/gitlab:Z \
--volume /docker/gitlab/data:/var/opt/gitlab:Z \
--net=bridge \
--env TZ=Australia/Perth \
gitlab/gitlab-ee:latest
在Gitlab尝试“迁移”数据库时,出现了以下错误:
PG::DuplicateTable: ERROR: relation "audit_events" already exists
用户已经尝试了一些解决方法,但问题依然存在,包括运行docker exec -it gitlab update-permissions
等。
解决方案
请注意以下操作可能会有版本差异或风险,做好备份工作。
解决方案1:清空数据重启
由于错误信息提示数据库表”audit_events”已经存在,建议清空数据重新启动容器,并在启动之前确保数据库正确初始化:
1. 停止并删除现有的Gitlab容器。
2. 清空/docker/gitlab/data
目录中的数据,以便重新初始化。
3. 重新运行Gitlab容器:
docker run -i \
--hostname gitlab2.michael-thompson.net \
--name gitlab \
--restart unless-stopped \
--volume /docker/gitlab/config:/etc/gitlab:Z \
--volume /docker/gitlab/log:/var/log/gitlab:Z \
--volume /docker/gitlab/data:/var/opt/gitlab:Z \
--net=bridge \
--env TZ=Australia/Perth \
gitlab/gitlab-ee:latest
- 等待容器启动完成。
- 如果容器启动成功并且数据库初始化完成,恢复之前的备份数据。
解决方案2:联系Gitlab支持
用户可以考虑联系Gitlab支持,特别是在使用Gitlab EE的情况下。他们可能能够提供专业的支持和解决方案,尤其是在商业版中遇到问题时。
解决方案3:备份恢复数据
如果用户有可用的备份数据,可以在Gitlab容器正确启动后,将备份数据恢复到容器中。这需要在容器初始化后进行,确保数据库正确创建,并在恢复数据之前做好相应的准备工作。
用户提到的问题可能与数据库状态不一致导致的,因此在清空数据或恢复备份数据之前,要确保数据库正确初始化和创建,以避免类似的问题。
注意: 以上解决方案是基于用户提供的问题描述和最佳回答的信息,可能需要根据具体情况进行调整。在执行操作前,请确保备份重要数据以防万一。
正文完