Как настроить docker-compose авторизации тома - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь установить gitlab с помощью docker и мой собственный файл docker-compose.yml на моем NAS-устройстве Synology в соответствии с документацией

Когда я запускаю этот файл в моей Synology (с терминалом), у меня есть ошибка с выходом кода 1:

Ран / opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-keys вернули разрешения на проверку 1

Как мне настроить мой каталог или файл docker-compose для исправления этой ошибки?

Я выполнил chmod -R 777 и chown -R root:root для данных, журналов и конфигурации.

web:
   image: 'gitlab/gitlab-ce:latest'
   restart: always
   hostname: 'gitlab.example.com'
   environment:
     GITLAB_OMNIBUS_CONFIG: |
       external_url 'https://gitlab.example.com'
       # Add any other gitlab.rb configuration here, each on its own line
   ports:
     - '80:80'
     - '443:443'
     - '22:22'
   volumes:
     - '/srv/gitlab/config:/etc/gitlab'
     - '/srv/gitlab/logs:/var/log/gitlab'
     - '/srv/gitlab/data:/var/opt/gitlab

Ошибка выхода из контейнера (возврат 1) с ошибкой ниже:

[2019-02-10T08: 15: 49 + 00: 00] ИНФОРМАЦИЯ: Выполнение в очередиотложенные уведомления перед повторным вызовом исключения [2019-02-10T08: 15: 49 + 00: 00] ОШИБКА: запущены обработчики исключений [2019-02-10T08: 15: 49 + 00: 00] ОШИБКА: обработчики исключений завершены [2019-02-10T08: 15: 49 + 00: 00] FATAL: Stacktrace выгружается в /opt/gitlab/embedded/cookbooks/cache/chef-stacktrace.out [2019-02-10T08: 15: 49 + 00: 00] FATAL: Пожалуйста, предоставьте содержимое файла stacktrace.out, если вы подаете отчет об ошибке [2019-02-10T08: 15: 49 + 00: 00] FATAL: Mixlib :: ShellOut :: ShellCommandFailed: execute [/ opt / gitlab /встроенная / service / gitlab-shell / bin / gitlab-keys проверка разрешений] (gitlab :: gitlab-shell line 101) произошла ошибка: Mixlib :: ShellOut :: ShellCommandFailed: ожидалось, что процесс завершится с [0], но получено'1' ---- Начать вывод / opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-keys проверки прав доступа ---- STDOUT: STDERR: / opt / gitlab / внедренный / service / gitlab-shell / lib / gitlab_logger.rb: 30: в initialize': Permission denied @ rb_sysopen - /var/log/gitlab/gitlab-shell/gitlab-shell.log (Errno::EACCES) from /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_logger.rb:30:in open 'из /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_logger.rb:30:in initialize' from /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_logger.rb:120:in new' из / opt / gitlab /встроенный / service / gitlab-shell / lib / gitlab_logger.rb: 120: в <top (required)>' from /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_keys.rb:4:in require_relative 'из /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_keys.rb:4:in <top (required)>' from /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys:24:in require'из / opt / gitlab / внедренный / сервис / gitlab-shell / bin / gitlab-keys: 24: in `'---- Конечный вывод / opt / gitlab / внедренный / service / gitlab-shell / bin / gitlab-keysCHECk-permissions ---- Ran-opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-keys вернул контрольные разрешения 1

1 Ответ

0 голосов
/ 11 февраля 2019

Я реплицировал ваши настройки и последний вывод, полученный из журналов докера (web_container_id), был

=> /var/log/gitlab/gitlab-rails/sidekiq_exporter.log <==
[2019-02-11 17:16:20] 127.0.0.1 - - [11/Feb/2019:17:16:20 UTC] "GET /metrics HTTP/1.1" 200 1298 "-" "Prometheus/2.5.0"

Ваша проблема связана с доступом к вашему каталогу от пользователя, выполняющего докер, так как он наследует разрешения отпапка и папка / srv это папка суперпользователя.

Вы сделали после конфигурации для установки докера в Linux?

https://docs.docker.com/install/linux/linux-postinstall/

Помимо этого, вам необходимо убедиться, что ваш каталог хоста доступен для пользователя, выполняющего docker-compose, после этого он также не будет работать.Вы сказали, что использовали chown -R root: root после chmod 777?Это не даст никакого эффекта, если вы работаете без root.

Dockerfile:

version: "3"
services:
  web:
   image: gitlab/gitlab-ce:latest
   restart: always
   hostname: gitlab.example.com
   environment:
     GITLAB_OMNIBUS_CONFIG: |
       external_url 'https://gitlab.example.com'
   ports:
     - 80:80
     - 443:443
     - 22:22
   volumes:
     - /srv/gitlab/config:/etc/gitlab
     - /srv/gitlab/logs:/var/log/gitlab
     - /srv/gitlab/data:/var/opt/gitlab
...