#docker #jenkins
#дженкинс #docker
Вопрос:
Я извлекаю официальный образ Jenkins docker отсюда. В пользовательском интерфейсе Jenkins я создаю новое задание, устанавливаю плагин github и устанавливаю URL-адреса репозитория в конфигурации задания.
Наконец, я сохраняю изменения от Jenkins.
Я хочу создать новое изображение таким, какое оно есть. Я останавливаю контейнер и фиксирую его в новом образе.
Затем я запускаю новый контейнер из нового образа … и Jenkins не содержит никаких моих изменений.
Я использую Docker version 1.6.2, build 7c8fca2
Ответ №1:
Dockerfile объявляет домашний каталог jenkins томом
# Jenkins home directoy is a volume, so configuration and build history
# can be persisted and survive image upgrades
VOLUME /var/jenkins_home
Это означает, что все изменения в конфигурации Jenkins выполняются за пределами образа docker.
Обновить
Проект README описывает, как создавать собственные производные образы docker с предварительно установленными плагинами.
Например
FROM jenkins
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
Комментарии:
1. Right…so Я должен создать свой собственный образ, основанный на официальном. Спасибо
2. Мне было интересно … если бы я удалил директиву VOLUME из официального файла Jenkins dockerfile и внес свои изменения в новый контейнер, тогда я мог бы зафиксировать его как новый образ, который будет содержать изменения … верно?
3. Подтверждено. Я сделал это так, и теперь у меня есть изображение Jenkins, содержащее пользовательское задание и плагин github по умолчанию.
4. @KostasDemiris Потрясающе. Я как раз этого и искал !
5. @KostasDemiris Как вы удалили директиву Volume из файла Dockerfile, не могли бы вы рассказать? Я имею в виду, как я могу получить Dockerfile официального образа Jenkins?