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

标签 docker docker-compose gitlab

我有一个带有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/

相关文章:

java - 在 docker 中运行 spring boot webapp 时,我应该使用 "-server"java 标志吗?

python -/bin/sh:1:诗歌:找不到

docker - 如何创建使用为 jenkins 用户提供的 ssh key 的 Jenkins Docker 镜像?

GITLAB:将脚本输出保存在变量 .gitlab-ci.yml 中

Gitlab CI 无法从私有(private) docker 注册表中提取镜像

git - 如何列出过去一周提交中在 git repo 中添加或删除的所有新文件

docker - docker stack deploy 是否适用于本地镜像

docker - 如何找到用于启动容器的docker-compose.yml?

docker-compose - AWS Build Project 服务 docker-compose 构建命令不起作用

docker-compose - 如何在 docker-compose 文件中配置 Caddy 2 以在没有绑定(bind)安装的 Caddyfile 的情况下进行反向代理?