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

时间:2019-06-17 13:01:17

标签: 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管理员密码。

2 个答案:

答案 0 :(得分:0)

解决方案是将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

答案 1 :(得分:-1)

我尝试了 cbll 响应,但对我不起作用。

在 Docker Container Gitlab CE 中手动更改 root 密码。

  1. docker exec -it bash
  2. gitlab-rails 控制台

-----等到控制台打开----

  1. irb(main):001:0> user = User.find_by_username 'root'

  2. irb(main):001:0> user.password = "newpassword"

  3. irb(main):001:0> user.confirmation_password = "newpassword"

  4. irb(main):001:0> user.save!