services: postgres: image: postgres:16 container_name: bilhej-postgres-e2e environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 5 backend: build: dockerfile: docker/backend.e2e.Dockerfile context: . container_name: bilhej-backend-e2e environment: SPRING_PROFILES_ACTIVE: docker POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} JWT_SECRET: ${JWT_SECRET} STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY} STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET} STRIPE_PRICE_ID: ${STRIPE_PRICE_ID} depends_on: postgres: condition: service_healthy frontend: build: dockerfile: docker/frontend.e2e.Dockerfile context: . container_name: bilhej-frontend-e2e depends_on: - backend playwright: build: dockerfile: docker/playwright.e2e.Dockerfile context: . container_name: bilhej-playwright-e2e ipc: host environment: PLAYWRIGHT_BASE_URL: http://frontend depends_on: - frontend command: >- sh -c " echo 'Waiting for backend...'; for i in \$(seq 1 60); do curl -s http://backend:8080/api/vehicles/ZZZ999 > /dev/null && break; sleep 1; done; echo 'Waiting for frontend...'; for i in \$(seq 1 30); do curl -s http://frontend > /dev/null && break; sleep 1; done; npx playwright test --reporter=list "