Docker в Docker, Сборка агентов Docker в Docker, содержащем Jenkins Server - PullRequest
0 голосов
/ 07 марта 2019

В настоящее время я управляю Jenkins с Docker. При попытке создания приложений Docker я сталкиваюсь с некоторыми сомнениями относительно того, стоит ли мне использовать Docker в Docker (Dind), связав файл /var/run/docker.sock или установив другой экземпляр Docker в моем докере Jenkins. Я на самом деле видел, что ранее, не рекомендуется использовать что-то еще, кроме docker.sock.

На самом деле я не понимаю, почему мы должны использовать что-то еще, кроме демона докера с хоста, кроме того, чтобы не загрязнять его.

источники: https://itnext.io/docker-in-docker-521958d34efd

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Лучшее решение для случая «докер jenkins in docker container нуждается в докере» - добавить ваш хост в качестве узла (ведомого) в jenkins.Это заставит каждый шаг сборки (буквально все) работать на вашем хост-компьютере.Мне потребовался месяц, чтобы найти идеальную настройку.

Смонтировать докерную розетку в контейнере jenkins: Вы потеряете контекст.Файлы, которые вы хотите скопировать внутри изображения, находятся внутри рабочей области в контейнере jenkins, и ваш докер работает на хосте.Сбой COPY наверняка.

Установить клиент Docker в контейнере jenkins: Необходимо изменить официальный образ jenkins.Добавляет сложность.И вы тоже потеряете контекст.

Добавьте ваш хост как узел jenkins: Отлично.У вас есть контекст.Не меняя официальный имидж.

0 голосов
/ 07 марта 2019

Без полного понимания, почему вам нужно использовать Docker в Docker - я подозреваю, что вам необходимо выполнить некоторые особые требования с учетом среды, в которой вы создаете фактический образ, могу ли я предложить вам многоэтапное создание образов Docker?Это может оказаться полезным, поскольку позволяет сначала создать среду здания, а затем создать фактический образ (отсюда и название «многоступенчатое здание»).Проверьте это здесь: https://docs.docker.com/develop/develop-images/multistage-build/

...