использование docker-compose для экземпляра kubernetes с jenkins - монтирование пустых томов - PullRequest
0 голосов
/ 06 мая 2018

У меня есть установка экземпляра Jenkins с использованием решения Googles Jenkins on Kubernetes . Я не изменил ни одной из настроек Pod Kubernetes.

Когда я запускаю новую работу, я успешно могу все запустить и запустить до момента моих тестов.

В моих тестах используется docker-compose. Сначала убедитесь, что на экземпляре установлены docker (1.5-1 + b1) и docker-compose (1.8.0-2) (я знаю, что могу оптимизировать это, используя образ, который уже включает их, но я все еще в проверка концепции).

Когда я запускаю команду docker-compose up, все работает, и службы запускают свои сценарии инициализации. Однако крепления пустые . Я проверил, что файлы существуют на подчиненном устройстве Jenkins, и при запуске docker-compose создается сервис монтирования в сервисе docker, однако они пусты .

Некоторая информация:

Чтобы обойти разрешения для файлов, я использую /tmp в качестве рабочей области Jenkins. Я использую SCM для извлечения моих файлов (успешно), и в файле docker-compose я указываю version: '2' и пути монтирования с абсолютными путями. Раздел тома службы, который не работает, выглядит следующим образом:

volumes:
 - /tmp/automation:/opt/automation

Я изменил команду, запускаемую в службе, на ls /opt/automation, и в результате получился пустой каталог.

Чего мне не хватает? Я просто хочу смонтировать каталог в моей службе docker-compose . Это прекрасно работает на устройствах Windows, Ubuntu и Centos. Почему не работает с использованием экземпляра Kubernetes?

1 Ответ

0 голосов
/ 06 мая 2018

Я нашел причину сбоя здесь :

Контейнер Docker в контейнере Docker использует родительский демон Docker HOST, и, следовательно, все тома, которые монтируются в случае "docker-in-docker", все еще ссылаются из HOST, а не из Container.

Следовательно, фактический путь, смонтированный из контейнера Jenkins, «не существует» в HOST. В связи с этим в пустом контейнере «docker-in-docker» создается новый каталог. То же самое применяется, когда каталог монтируется в новый контейнер Docker внутри контейнера.

Так что кажется, что будет невозможно установить что-то из внешнего докера во внутренний докер. И другое решение должно быть найдено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...