The runner executes each job in its own container on docker's default bridge network, so "localhost" never resolves to the docker host - smoke-qa's direct Postgres connection and Playwright/API HTTP calls need the bridge gateway IP instead. Bind the db port to that same gateway IP (not 0.0.0.0) so it stays reachable only from sibling containers, not off-box.
67 lines
1.7 KiB
YAML
67 lines
1.7 KiB
YAML
name: miccheck-qa
|
|
|
|
# Dedicated, network-isolated QA stack. Not connected to the dev compose
|
|
# stack's network - runs entirely on its own bridge network below. The API has
|
|
# no published host port; Postgres is bound to DB_BIND_HOST (docker's bridge
|
|
# gateway IP, computed by deploy-qa.sh) so the smoke-qa CI job - itself a
|
|
# sibling container on that same default bridge - can seed/inspect data
|
|
# directly, while it stays unreachable off-box (unlike binding to 0.0.0.0).
|
|
services:
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_DB: miccheck
|
|
POSTGRES_USER: miccheck
|
|
POSTGRES_PASSWORD: password
|
|
ports:
|
|
- "${DB_BIND_HOST:-127.0.0.1}:55432:5432"
|
|
volumes:
|
|
- miccheck-qa-pgdata:/var/lib/postgresql/data
|
|
networks:
|
|
- qa
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U miccheck -d miccheck"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
api:
|
|
image: ${API_IMAGE}:qa
|
|
environment:
|
|
ASPNETCORE_ENVIRONMENT: Development
|
|
ASPNETCORE_URLS: http://+:8080
|
|
ConnectionStrings__miccheck: "Host=db;Database=miccheck;Username=miccheck;Password=password"
|
|
Jwt__SecretKey: ${JWT_SECRET_KEY}
|
|
Jwt__Issuer: MicCheck
|
|
Jwt__Audience: MicCheck
|
|
networks:
|
|
- qa
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -fsS http://localhost:8080/health || exit 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 20s
|
|
|
|
admin:
|
|
image: ${ADMIN_IMAGE}:qa
|
|
ports:
|
|
- "${QA_ADMIN_PORT:-3001}:80"
|
|
networks:
|
|
- qa
|
|
depends_on:
|
|
api:
|
|
condition: service_started
|
|
|
|
networks:
|
|
qa:
|
|
name: miccheck-qa-net
|
|
|
|
volumes:
|
|
miccheck-qa-pgdata:
|
|
name: miccheck-qa-pgdata
|