Фиксация в образе jenkins docker не сохраняет изменения

#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?