Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
88 lines (77 loc) · 2.69 KB
/
Copy pathdocker-compose.yml
File metadata and controls
88 lines (77 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# =============================================================================
# Claude Workflow Engine - docker-compose.yml
# Version: 1.6.1
#
# Services:
# engine - The workflow orchestration pipeline (the main application)
#
# Usage:
# Start the engine:
# docker compose up engine
#
# Run a specific task:
# docker compose run --rm engine --task "your task description"
#
# View logs:
# docker compose logs -f engine
# =============================================================================
services:
# ---------------------------------------------------------------------------
# engine: Claude Workflow Engine (3-level LangGraph pipeline)
# ---------------------------------------------------------------------------
engine:
build:
context: .
dockerfile: Dockerfile
container_name: claude-workflow-engine
image: workflow-engine:1.6.1
# Load all environment variables from .env file.
# Required vars: ANTHROPIC_API_KEY, GITHUB_TOKEN
# Optional vars: CLAUDE_DEBUG, CLAUDE_HOOK_MODE
# The .env file is excluded from the image via .dockerignore.
env_file:
- .env
# Override or supplement specific environment variables here.
# These take precedence over values in .env.
environment:
PYTHONUNBUFFERED: "1"
PYTHONDONTWRITEBYTECODE: "1"
# Enable the lightweight HTTP health server on HEALTH_PORT
ENABLE_HEALTH_SERVER: "1"
HEALTH_PORT: "8080"
METRICS_PORT: "9090"
ports:
- "8080:8080"
- "9090:9090"
# Bind-mount the project directory for live development.
# Code changes are immediately reflected without rebuilding the image.
# Remove this volume for immutable production deployments.
volumes:
- .:/app
- session_logs:/app/logs
- telemetry_data:/app/telemetry
# The engine is a CLI tool, not a long-running server.
# It exits after each pipeline run; compose will not restart it automatically.
restart: "no"
# Default command: show pipeline help.
# Override at runtime: docker compose run --rm engine --task "..."
command: ["--help"]
# Resource limits - uncomment and tune for production deployments
deploy:
resources:
limits:
memory: 2g
cpus: "1.0"
reservations:
memory: 512m
cpus: "0.25"
# =============================================================================
# Named Volumes
# =============================================================================
volumes:
# Persists pipeline session log files across container restarts.
session_logs:
driver: local
# Persists OpenTelemetry / Prometheus telemetry data.
telemetry_data:
driver: local