Я выполняю задание Jenkins на основе такого агента:
pipeline {
agent {
docker {
image 'cypress/base:10'
args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose -u root'
}
}
…
note: docker
и docker-compose
смонтированы в моем контейнере агента для возможности запуска docker контейнеров внутри ступеней конвейера («Docker за пределами настройки Docker»)
вниз по конвейеру, я запускаю docker-compose
установку, которая состоит из 2 контейнеров - сервера и веб-приложения
…
sh 'docker-compose up --build --detach'
…
После этого я хочу отправить запрос GET на localhost:8080
, отсюда и должно быть получено веб-приложение. Но я получаю
Error: connect ECONNREFUSED localhost:8080
Такая же docker -композитная настройка работает на моем устройстве. машина. Переадресация портов настроена правильно (8080: переадресация портов 8080 включена в docker-compose
файле конфигурации)
Я думаю, что это в некоторой степени связано с настройкой "Docker за пределами Docker", которую я выполняю в Jenkins Port Возможно, порт 8080 прослушивает хост агента моего конвейера, не уверен…
Я буду рад получить несколько sh идей по этой проблеме, совершенно не в себе this.
И просто для большего контекста: я хочу запустить web-app + API-сервер через docker -compose, а затем запустить Cypress (вне docker -compose setup), чтобы сделать E2E тестирование через пользовательский интерфейс