Как прокинуть порты между контейнерами
У меня есть stage в gitlab-ci
test-dev:
after_script:
- docker stop browser_test
stage: test
image: docker:19.03.12
services:
- docker:dind
script:
- apk add --update npm
- docker run --rm -d --name=browser_test -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
- npx mocha tests/js/screenshots-* --timeout 50000
- npx playwright test tests/js/pw_*
- php artisan test
- docker stop browser_test
Но в данном случае, npx ссылается только на локальные порты по адресам 127.0.0.1:4444 и 0.0.0.0:7900
Но из-за того, что я использую docker in docker тесты падают ибо он не получает ответ, как мне правильн прокинуть порты между ними или связать их?
Ответы (1 шт):
Автор решения: m1sse
→ Ссылка
Попробуйте запустить тест со следующей конфигурацией:
test-dev:
after_script:
- docker stop browser_test
stage: test
image: docker:19.03.12
services:
- docker:19.03.12-dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
script:
- apk add --update npm
- docker run --rm -d --name=browser_test -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
- npx mocha tests/js/screenshots-* --timeout 50000
- npx playwright test tests/js/pw_*
- php artisan test
- docker stop browser_test
Для того чтобы они (docker in docker) могли общаться и аутентифицироваться по сертификату, мы добавили DOCKER_TLS_CERTDIR: "/certs", так же указали одинаковую версию (19.03.12).