diff --git a/README.md b/README.md index c507c83..a08b5d6 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/docker-compose.yml b/docker-compose.yml index db51662..437bc97 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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