Files
Charon/.docker/compose/docker-compose.e2e.yml
GitHub Actions f5e618a912 fix(docker): use actual tmpfs for E2E test data
Replace misleading named volume with real tmpfs mount. E2E test data is
now truly ephemeral and fresh on every container start, with no state
leakage between test runs.

Fixes review feedback on PR #550.
2026-01-25 16:09:22 +00:00

43 lines
1.5 KiB
YAML

# Docker Compose for E2E Testing
#
# This configuration runs Charon with a fresh, isolated database specifically for
# Playwright E2E tests. Use this to ensure tests start with a clean state.
#
# Usage:
# docker compose -f .docker/compose/docker-compose.e2e.yml up -d
#
# The setup API will be available since no users exist in the fresh database.
# The auth.setup.ts fixture will create a test admin user automatically.
services:
charon-e2e:
image: charon:local
container_name: charon-e2e
restart: "no"
ports:
- "8080:8080" # Management UI (Charon)
environment:
- CHARON_ENV=development
- CHARON_DEBUG=0
- TZ=UTC
# Encryption key - MUST be provided via environment variable
# Generate with: export CHARON_ENCRYPTION_KEY=$(openssl rand -base64 32)
- CHARON_ENCRYPTION_KEY=${CHARON_ENCRYPTION_KEY:?CHARON_ENCRYPTION_KEY is required}
- CHARON_HTTP_PORT=8080
- CHARON_DB_PATH=/app/data/charon.db
- CHARON_FRONTEND_DIR=/app/frontend/dist
- CHARON_CADDY_ADMIN_API=http://localhost:2019
- CHARON_CADDY_CONFIG_DIR=/app/data/caddy
- CHARON_CADDY_BINARY=caddy
- CHARON_ACME_STAGING=true
# FEATURE_CERBERUS_ENABLED deprecated - Cerberus enabled by default
tmpfs:
# True tmpfs for E2E test data - fresh on every run, in-memory only
- /app/data:size=100M,mode=1755
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://localhost:8080/api/v1/health || exit 1"]
interval: 5s
timeout: 5s
retries: 10
start_period: 10s