Использование jenkins в док-контейнере с / var / jenkins_home на диске хранения NAS - PullRequest
0 голосов
/ 14 января 2019

У меня Ubuntu 18.04 с диском NAS, смонтированным через cifs. Я вытащил образ jenkins:latest и запустил его с помощью команды запуска:

docker run --restart=unless-stopped --name devonejenkins -p 8080:8080 -p 50000:50000 -v /mnt/storage/jenkins:/var/jenkins_home jenkins

Эта команда не работает. Тем не менее, используя локальный диск на виртуальной машине, как это:

docker run --restart=unless-stopped --name devonejenkins -p 8080:8080 -p 50000:50000 -v /home/chrisg/jenkins:/var/jenkins_home jenkins

, кажется, работает просто отлично.

Без вставки тонны кода трассировки стека это похоже на точку отказа:

SEVERE: не удалось инициализировать jenkins java.io.IOException: не удалось установите временную метку / var / jenkins_home / secrets / initialAdminPassword в 1547434033746

1 Ответ

0 голосов
/ 14 января 2019

Это зависит от того, как вы смонтировали том cifs.

Этот пример относится к ContainX/docker-volume-netshare, подключаемому модулю, который монтирует NFS v3 / 4, AWS EFS или CIFS внутри ваших док-контейнеров.

В более старой (2015 г.) статье упоминались проблемы с разрешениями:

Docker-контейнеру не будет разрешен доступ к вашей точке монтирования CIFS, если вы не смонтируете общий ресурс с соответствующим контекстом безопасности SELinux.

И:

В отличие от NFS, монтирование CIFS выполняет аутентификацию пользователя во время монтирования. Это означает, что все файлы и каталоги в нашей точке монтирования CIFS будут принадлежать одному пользователю / группе.
Это может быть проблемой, если пользователь процесса, запущенного в вашем контейнере, и пользователь монтирования CIFS не совпадают.
Я работал над этим, монтируя один и тот же общий ресурс CIFS несколько раз с разными аргументами uid и gid.

...