Я использую выделенный сервер Jenkins, и я использую контейнеры Docker для своего веб-приложения с помощью Jenkinsfile. У меня проблема с кодированием при запуске тестов на 80-м порту: в соединении отказано. То же самое происходит, когда я вручную перехожу к контейнеру web_test
и тестирую базовый wget http://web_test
:
Resolving web_test (web_test)... 172.18.0.6
Connecting to web_test (web_test)|172.18.0.6|:80... failed: Connection refused.
Я запускаю все контейнеры Docker в файле Jenkins в выделенной сети, и все контейнеры могут общаться друг с другом, но когда я пытаюсь использовать контейнер web_test
для запуска базового веб-теста, я получаю отказ в этом соединении. ошибка. Вот часть моего Jenkinsfile:
docker.image('memcached:latest').withRun('--network jenkins-net -P --name memcached') {f ->
docker.image('selenium/standalone-firefox-debug:2.53.1').withRun('--network jenkins-net -P --name firefox') { e ->
docker.image('selenium/standalone-chrome-debug:2.53.1').withRun('--network jenkins-net -P --name chrome') { d ->
docker.image('vendwatchdocker_db_test:new').withRun('--volumes-from db_test2 --network jenkins-net -P --name db_test') { c ->
docker.image('vendwatchdocker_db_test:new').inside() {
/* Wait until psql service is up */
sh 'hostname'
}
docker.image('vendwatchdocker_php').inside("--network jenkins-net -P --name web_test") {
Любые идеи ?
Спасибо, да, я тоже пробовал это, но у меня все еще та же проблема. Я думаю, это проблема с моей конфигурацией apache. Я попытался запустить его с помощью nginx, и мне удалось получить доступ к порту.
Протокол
http
по умолчанию использует порт80
. В ваших опцияхdocker run
вашweb_test
использует опцию-P
. Это означает, что он будет открывать порт случайным образом. Попробуйте определить порт:docker.image('vendwatchdocker_php').inside("--network jenkins-net -p 80:80 --name web_test")