docker-compose.ci.yml
Rama dev · réplica de lectura del repositorio original.
services:
gatekeeper:
build:
context: ./app/gatekeeper-proxy
dockerfile: ./Dockerfile.prod
cache_from: ["type=gha,scope=build-gatekeeper"]
cache_to: ["type=gha,mode=max,scope=build-gatekeeper"]
networks:
dev-playwright:
aliases:
- app.gatekeeper
ports:
- "80:80"
styx:
build:
context: ./
dockerfile: ./app/styx-frontend/Dockerfile.prod
args:
VERSION: ci
cache_from: ["type=gha,scope=build-styx"]
cache_to: ["type=gha,mode=max,scope=build-styx"]
networks:
- dev-playwright
rhea:
build:
context: ./
dockerfile: ./app/rhea-backend/Dockerfile.prod
cache_from: ["type=gha,scope=build-rhea"]
cache_to: ["type=gha,mode=max,scope=build-rhea"]
environment:
NODE_ENV: production
DATABASE_URL: postgresql://docker:docker@rhea-postgres:5432/db?schema=public
jwt-secret: ci-secret-key
environment: ci
s3_endpoint: http://s3-minio:9000
s3_bucket_id: bucket
s3_access_key_id: devuser
s3_access_key_secret: devsecret
command: npm run prod
depends_on:
rhea-postgres:
condition: service_healthy
networks:
- dev-playwright
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 5s
timeout: 5s
retries: 12
start_period: 30s
calliope:
build:
context: ./
dockerfile: ./app/calliope-websockets/Dockerfile.prod
cache_from: ["type=gha,scope=build-calliope"]
cache_to: ["type=gha,mode=max,scope=build-calliope"]
environment:
NODE_ENV: production
jwt-secret: ci-secret-key
environment: ci
command: npm run prod
depends_on:
- redis
networks:
- dev-playwright
orpheus:
build:
context: ./
dockerfile: ./app/orpheus-mcp/Dockerfile.prod
cache_from: ["type=gha,scope=build-orpheus"]
cache_to: ["type=gha,mode=max,scope=build-orpheus"]
environment:
NODE_ENV: production
REQUIRE_OAUTH: "true"
jwt-secret: ci-secret-key
command: npm run prod
depends_on:
rhea:
condition: service_healthy
networks:
- dev-playwright
thetis:
build:
context: ./
dockerfile: ./app/thetis-landing/Dockerfile.prod
cache_from: ["type=gha,scope=build-thetis"]
cache_to: ["type=gha,mode=max,scope=build-thetis"]
networks:
- dev-playwright
rhea-postgres:
image: postgres:15-alpine
environment:
POSTGRES_USER: docker
POSTGRES_PASSWORD: docker
POSTGRES_DB: db
healthcheck:
test: ["CMD-SHELL", "pg_isready -U docker -d db"]
interval: 5s
timeout: 5s
retries: 5
start_period: 10s
networks:
- dev-playwright
rhea-migrate:
build:
context: ./
dockerfile: ./app/rhea-backend/Dockerfile.prod
cache_from: ["type=gha,scope=build-rhea"]
environment:
DATABASE_URL: postgresql://docker:docker@rhea-postgres:5432/db?schema=public
depends_on:
rhea-postgres:
condition: service_healthy
command: sh -c "npx prisma migrate deploy && node dist/prisma/seed.js"
networks:
- dev-playwright
redis:
image: redis:8-alpine
networks:
- dev-playwright
s3-minio:
image: pgsty/minio:RELEASE.2026-08-04T00-00-00Z
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: adminpassword
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 5s
timeout: 5s
retries: 3
networks:
- dev-playwright
s3-minio-setup:
image: pgsty/mc:RELEASE.2026-09-16T00-00-00Z
depends_on:
s3-minio:
condition: service_healthy
entrypoint: >
/bin/sh -c "
mc alias set minio-dev http://s3-minio:9000 admin adminpassword;
mc mb --ignore-existing minio-dev/bucket;
mc admin user add minio-dev devuser devsecret;
mc admin policy attach minio-dev readwrite --user devuser;
echo 'MinIO setup completed successfully';
"
networks:
- dev-playwright
networks:
dev-playwright:
name: neverkin-playwright