| services: | |
| workflow-engine: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| container_name: workflow-engine | |
| ports: | |
| - "8000:8000" | |
| environment: | |
| - APP_NAME=FlowGraph | |
| - APP_VERSION=1.0.0 | |
| - DEBUG=true | |
| - HOST=0.0.0.0 | |
| - PORT=8000 | |
| - MAX_ITERATIONS=100 | |
| - LOG_LEVEL=INFO | |
| volumes: | |
| # Mount for development (hot reload) | |
| - .:/app | |
| command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload | |
| healthcheck: | |
| test: [ "CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')" ] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| start_period: 10s | |
| restart: unless-stopped | |
| # Optional: Run tests in a separate container | |
| tests: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| container_name: workflow-engine-tests | |
| command: pytest tests/ -v | |
| profiles: | |
| - test | |
| depends_on: | |
| - workflow-engine | |