Для запуска Jenkins в Docker с использованием Jenkins Agent, вам потребуется создать два Docker-контейнера: один для Jenkins, другой для Jenkins Agent.
1. Создайте Dockerfile для контейнера Jenkins:
FROM jenkins/jenkins:latest
В этом Dockerfile используется базовый образ jenkins/jenkins
, который содержит установленный пакет Jenkins.
2. Соберите и запустите Docker-контейнер для Jenkins с помощью команды docker build
и docker run
:
docker build -t jenkins . docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-container jenkins
Команда docker build
создает Docker-образ на основе Dockerfile, а -t jenkins
определяет имя образа. Команда docker run
создает и запускает контейнер на основе этого образа. Флаг -d
запускает контейнер в фоновом режиме, а -p
проксирует порт 8080 Jenkins на порт 8080 хоста и порт 50000 для связи с Jenkins Agent.
3. Теперь мы можем создать Dockerfile для контейнера Jenkins Agent:
FROM jenkins/jnlp-slave:latest
В этом Dockerfile используется базовый образ jenkins/jnlp-slave
, который предоставляет функциональность Jenkins Agent.
4. Соберите и запустите Docker-контейнер для Jenkins Agent:
docker build -t jenkins-agent . docker run -d --name jenkins-agent-container --link jenkins-container:jenkins-agent jenkins-agent
Команда docker build
создает Docker-образ на основе Dockerfile, а -t jenkins-agent
определяет имя образа. Команда docker run
создает и запускает контейнер на основе этого образа, используя флаг --link
для связи с контейнером Jenkins по имени jenkins-container
.
5. После запуска обоих контейнеров вам потребуется привязать Jenkins Agent к Jenkins. Откройте веб-интерфейс Jenkins, перейдите в раздел "Управление Jenkins" -> "Управление узлами" -> "Новый узел".
6. Введите имя для Jenkins Agent, выберите тип "Permanent Agent" и нажмите "OK".
7. На странице настройки нового узла укажите "Узел", введите имя и выберите тип "Динамический узел с Docker-координацией".
8. В разделе "Хост Docker" введите имя контейнера Jenkins Agent, указанное при запуске команды docker run
- "jenkins-agent-container".
9. Укажите остальные настройки по вашему усмотрению и сохраните изменения.
После настройки Jenkins и Jenkins Agent они должны начать взаимодействие, и вы сможете использовать Jenkins для запуска задач на Jenkins Agent в контейнере Docker.