Как сделать так, что бы Jenkis (в docker) запускал jenkins-agent (в docker)?

Для запуска 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.