Я пытаюсь создать docker-compose, чтобы включить мое приложение в качестве службы и testcafe в качестве другой службы.Оба контейнера собраны и инициализированы, но я не могу заставить testcafe ждать, пока мое приложение станет доступным для запуска тестов.
Я попытался передать параметр --app-init-delay 30000 в качестве параметрав testcafe-docker.sh, но игнорирует его.
entrypoint: ["/opt/testcafe/docker/testcafe-docker.sh", "'chromium --no-sandbox'", "--app-init-delay 30000", "e2e"]
Также пытался использовать сценарий https://github.com/Eficode/wait-for в точке входа или команде перед вызовом testcafe-docker.sh.Кажется, что команда вступает в конфликт с командой entrypoint, когда я использую ее на точке входа, я получаю testcafe для ожидания, но вместо запуска тестов заканчивается «Operation timed out»
entrypoint: ['/script/wait-for', 'app:8080 -- "/opt/testcafe/docker/testcafe-docker.sh chromium --no-sandbox e2e"']
(кажется, чтовсе параметры ожидания должны быть в одной и той же записи массива, чтобы он работал как скрипт точки входа)
Это мой файл docker-compose
version: "2"
services:
app:
container_name: app
build: ./dist/docker/
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./dist/docker/dependency:/dependency
testcafe:
container_name: testcafe
image: testcafe/testcafe
depends_on:
- app
volumes:
- ./test/e2e:/e2e
- ./package.json:/package.json
- ./package-lock.json:/package-lock.json
- ./script:/script
entrypoint: ['/script/wait-for', 'app:8080 -- "/opt/testcafe/docker/testcafe-docker.sh chromium --no-sandbox e2e"']
# entrypoint: ["/opt/testcafe/docker/testcafe-docker.sh", "'chromium --no-sandbox'", "--app-init-delay 30000", "e2e"]
Кажетсячто я очень близок к решению проблемы с ожиданием, но почему-то мой синтаксис точки входа неверен