Files
poimen-workflows/docker-compose.yml
T

139 lines
3.2 KiB
YAML
Raw Normal View History

version: '3.8'
services:
postgres:
image: postgres:15-alpine
environment:
POSTGRES_USER: poimen
POSTGRES_PASSWORD: poimen
POSTGRES_INITDB_ARGS: -c max_connections=200
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U poimen"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5
temporal:
image: temporalio/auto-setup:latest
ports:
- "7233:7233"
- "8233:8233"
environment:
DB: postgresql
DB_PORT: 5432
POSTGRES_USER: poimen
POSTGRES_PASSWORD: poimen
POSTGRES_SEEDS: postgres
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "tctl", "workflow", "list"]
interval: 10s
timeout: 5s
retries: 5
poimen-memory:
build:
context: ./memory
dockerfile: Dockerfile
ports:
- "8000:8000"
environment:
DATABASE_URL: postgresql://poimen:poimen@postgres:5432/poimen_memory
REDIS_URL: redis://redis:6379
JWT_SECRET: dev-secret-key
LOG_LEVEL: debug
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- ./memory:/app
poimen-workflows:
build:
context: ./workflows
dockerfile: Dockerfile
ports:
- "8080:8080"
environment:
DATABASE_URL: postgresql://poimen:poimen@postgres:5432/poimen_workflows
TEMPORAL_HOST: temporal:7233
MEMORY_SERVICE_URL: http://poimen-memory:8000
JWT_SECRET: dev-secret-key
LOG_LEVEL: debug
depends_on:
postgres:
condition: service_healthy
temporal:
condition: service_healthy
poimen-memory:
condition: service_started
volumes:
- ./workflows:/app
command: /app/workflows server
poimen-workflows-worker:
build:
context: ./workflows
dockerfile: Dockerfile
environment:
DATABASE_URL: postgresql://poimen:poimen@postgres:5432/poimen_workflows
TEMPORAL_HOST: temporal:7233
MEMORY_SERVICE_URL: http://poimen-memory:8000
JWT_SECRET: dev-secret-key
LOG_LEVEL: debug
depends_on:
postgres:
condition: service_healthy
temporal:
condition: service_healthy
poimen-memory:
condition: service_started
volumes:
- ./workflows:/app
command: /app/workflows worker
poimen-frontend:
build:
context: ./poimen-frontend
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
NEXT_PUBLIC_WORKFLOWS_API: http://localhost:8080
NEXT_PUBLIC_MEMORY_API: http://localhost:8000
NEXT_PUBLIC_AUTH_URL: http://localhost:8000/auth
OAUTH_CLIENT_ID: dev-client-id
OAUTH_CLIENT_SECRET: dev-client-secret
NODE_ENV: development
depends_on:
- poimen-workflows
- poimen-memory
volumes:
- ./poimen-frontend:/app
- /app/node_modules
volumes:
postgres-data:
networks:
default:
name: poimen-network