Как запустить контейнер gitlab-ce через docker-compose с уже настроенными учетными данными администратора? - PullRequest
0 голосов
/ 17 июня 2019

У меня есть файл docker-compose.yml с контейнером Gitlab CE:

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.

1 Ответ

0 голосов
/ 18 июня 2019

Решение состоит в том, чтобы установить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...