Files
wehub-resource-sync a9cd7750f4
CI / detect-changes (push) Waiting to run
CI / build (push) Waiting to run
UI v2 CI / E2E (Mocked) (push) Blocked by required conditions
UI v2 Integration CI / E2E (Integration) (push) Waiting to run
CI / unit-test (push) Blocked by required conditions
CI / test-harness (push) Waiting to run
CI / generate-e2e-matrix (push) Waiting to run
CI / e2e (push) Blocked by required conditions
CI / build-ui (push) Waiting to run
Publish docs via GitHub Pages / Deploy docs (push) Waiting to run
Release Drafter / update_release_draft (push) Waiting to run
UI v2 CI / Lint, Format & Test (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 12:37:56 +08:00

71 lines
1.9 KiB
YAML

# Docker Compose stack for Playwright UI integration tests.
#
# Uses the locally-built conductor:server image with Postgres as the backing
# store (no Elasticsearch required — Postgres full-text search is sufficient
# for the UI test workload).
#
# Build the server image once before running integration tests:
#
# docker build -t conductor:server -f docker/server/Dockerfile \
# --build-arg PREBUILT=false .
#
# Then start this stack (from the repo root):
#
# docker compose -f docker/docker-compose-ui-e2e.yaml up -d
#
# The Playwright global-setup script does this automatically when tests start.
# Container names are distinct from other compose stacks to allow both to
# run side-by-side without port or name conflicts.
services:
conductor-server:
image: conductor:server
build:
context: ../
dockerfile: docker/server/Dockerfile
container_name: conductor-server-ui-e2e
environment:
- CONFIG_PROP=config-postgres.properties
- conductor.app.ownerEmailMandatory=false
networks:
- internal
ports:
- "8000:8080"
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8080/health"]
interval: 10s
timeout: 10s
retries: 24 # up to 4 minutes for a cold JVM start
links:
- conductor-postgres:postgresdb
depends_on:
conductor-postgres:
condition: service_healthy
logging:
driver: "json-file"
options:
max-size: "10k"
max-file: "3"
conductor-postgres:
image: postgres:16
container_name: conductor-postgres-ui-e2e
environment:
- POSTGRES_USER=conductor
- POSTGRES_PASSWORD=conductor
networks:
- internal
healthcheck:
test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/5432'
interval: 5s
timeout: 5s
retries: 12
logging:
driver: "json-file"
options:
max-size: "1k"
max-file: "3"
networks:
internal: