【发布时间】:2019-10-31 01:57:42
【问题描述】:
我有一个带有 Gitlab CE 容器的 docker-compose.yml 文件:
services:
// other services..
gitlab:
image: 'gitlab/gitlab-ce'
restart: always
ports:
- '80:80'
- '443:443'
- '22:22'
- "127.0.0.1:8081:80"
volumes:
- '/etc/gitlab'
- '/var/log/gitlab'
- '/var/opt/gitlab'
networks:
- backend
在启动时,这需要您打开浏览器,转到(在这种情况下)localhost:8081 并手动输入密码。
我希望这个过程自动化(用于本地开发和测试目的)。
Gitlab 自己的答案:
gitlab-rails console production
user = User.where(id: 1).first
user.password = 'somethingsomething'
user.password_confirmation = 'somethingsomething'
user.save!
exit
如果我在设置完所有内容后 ssh 进入 Gitlab CE 容器(需要几分钟),这会起作用。
直接通过command 运行它不起作用 - 大概是因为gitlab-rails console 在容器启动时还没有准备好运行。
我尝试使用gitlab/gitlab-ce 图像手动创建Dockerfile,使用COPY 将上述脚本放入容器并使用CMD 它。然而,正如预测的那样,这会失败,因为gitlab-rails console 尚未准备好启动。这需要一段时间。
理想的场景是容器启动、安装 Gitlab 并完成所有设置工作; 然后 自动设置 root 管理员密码。
【问题讨论】:
标签: docker docker-compose gitlab