Run Jenkins jobs against Docker-in-Docker

This commit is contained in:
2026-04-08 23:10:47 +03:00
parent 7c55b391f6
commit 6827727311
2 changed files with 18 additions and 3 deletions
+4 -2
View File
@@ -1,11 +1,11 @@
# OTUS Homework 8: Jenkins Jobs
Проект поднимает Jenkins в Docker и автоматически создает 2 job:
Проект поднимает Jenkins и отдельный Docker daemon (`docker:dind`) в Docker и автоматически создает 2 job:
- `selenium-tests` для Selenium/Selenide тестов по Otus с выбором браузера;
- `mobile-appium-tests` для Appium тестов мобильного приложения с Allure-отчетом.
## Что входит в проект
- `Dockerfile`, `docker-compose.yml` — Jenkins с предустановленными инструментами.
- `Dockerfile`, `docker-compose.yml` — Jenkins с предустановленными инструментами и отдельным Docker daemon для job.
- `init.groovy.d/` — автосоздание пользователя `admin/admin`, job и Allure CLI.
- `jobs/selenium-tests.xml` — job для `https://git.kovbasa.ru/otus-autotests/homework_4.git`.
- `jobs/mobile-appium-tests.xml` — job для `https://git.kovbasa.ru/otus-autotests/homework_7.git`.
@@ -28,6 +28,8 @@ docker compose up -d --build
- `selenium-tests`
- `mobile-appium-tests`
Jenkins job запускают Docker не через сокет хоста, а через отдельный сервис `docker`. Это нужно, чтобы mobile job корректно работала с файлами из Jenkins workspace.
## Запуск job
### selenium-tests
+14 -1
View File
@@ -1,12 +1,25 @@
services:
docker:
image: docker:27-dind
privileged: true
environment:
- DOCKER_TLS_CERTDIR=
command:
- --host=tcp://0.0.0.0:2375
- --tls=false
volumes:
- ./jenkins_home:/var/jenkins_home
jenkins:
build: .
depends_on:
- docker
ports:
- "8081:8080"
- "50000:50000"
environment:
- JAVA_OPTS=-Djenkins.install.runSetupWizard=false
- DOCKER_HOST=tcp://docker:2375
user: root
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock