gpt4 book ai didi

docker - 如何通过已设置管理员凭据的docker-compose启动gitlab-ce容器?

转载 作者:行者123 更新时间:2023-12-02 19:25:30 25 4
gpt4 key购买 nike

我有一个带有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尚未准备好在容器启动的那一刻开始运行。

我尝试使用 Dockerfile图像手动创建 gitlab/gitlab-ce,使用 COPY将上述脚本放入容器中,并对其进行 CMD。但是,正如预期的那样,此操作失败,因为 gitlab-rails console在启动时尚未准备好。需要一段时间

理想的情况是容器启动,安装Gitlab并完成所有设置。然后自动设置root管理员密码。

最佳答案

解决方案是将GITLAB_OMNIBUS_CONFIG设置为环境变量。

这有效:

services:
// other services..
gitlab:
image: 'gitlab/gitlab-ce'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['initial_root_password'] = 'adminadmin'
ports:
- '80:80'
- '443:443'
- '22:22'
- "127.0.0.1:8081:80"
volumes:
- '/etc/gitlab'
- '/var/log/gitlab'
- '/var/opt/gitlab'
networks:
- backend

启动服务时,确认如下:
gitlab_1       |               == Seed from /opt/gitlab/embedded/service/gitlab-rails/db/fixtures/production/002_admin.rb
gitlab_1 | Administrator account created:
gitlab_1 |
gitlab_1 | login: root
gitlab_1 | password: adminadmin

关于docker - 如何通过已设置管理员凭据的docker-compose启动gitlab-ce容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56631893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com