Как настроить авторизацию доступа к тому для docker-compose

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

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

Ran / opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-keys check-permissions вернул 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: выполнить [/ opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-keys check-permissions] (gitlab :: gitlab-shell строка 101) возникла ошибка: Mixlib: : ShellOut :: ShellCommandFailed: Ожидается, что процесс завершится с [0], но получено '1' ---- Начать вывод / opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-keys check-permissions - - STDOUT: STDERR: /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_logger.rb:30:in 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 / emb edded / service / gitlab-shell / lib / gitlab_logger.rb: 30: в initialize' from /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_logger.rb:120:in new 'из /opt/gitlab/embedded/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 встроенный / 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 / embedded / service / gitlab-shell / bin / gitlab-keys: 24: in' ---- Конец вывода of / opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-keys check-permissions ---- Ran / opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-keys check-permissions return 1


person Jérémy    schedule 10.02.2019    source источник


Ответы (1)


Я воспроизвел вашу настройку, и последний вывод из журналов докеров (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? Это не вызовет никакого эффекта, если вы работаете без рута.

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
person Roberto Gonçalves    schedule 11.02.2019