-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
68 lines (66 loc) · 2.73 KB
/
Copy pathdocker-compose.yml
File metadata and controls
68 lines (66 loc) · 2.73 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
# Local development: runs the agent container and Chainlit UI together.
#
# The UI calls the agent directly via HTTP (AGENT_ENDPOINT_URL) instead of
# going through AgentCore Runtime. Both containers use static AWS credentials
# passed via environment variables (no aws-vault / SSO required inside containers).
#
# Usage:
# docker compose up --build
#
# Then open http://localhost:8000 in your browser.
#
# Required env vars (set in .env or export before running):
# AWS_REGION - AWS region (default: eu-central-1)
# AWS_ACCESS_KEY_ID - AWS access key (from `aws-vault exec dev_vault -- env | grep AWS`)
# AWS_SECRET_ACCESS_KEY - AWS secret key
# AWS_SESSION_TOKEN - AWS session token (required for SSO/assumed-role credentials)
# KNOWLEDGE_BASE_ID - Bedrock Knowledge Base ID (from terraform output)
# AGENTCORE_MEMORY_ID - AgentCore Memory ID (from terraform output)
#
# Optional (for remote AgentCore mode in the UI):
# AGENT_RUNTIME_ARN - If set, the UI will use invoke_agent_runtime instead of direct HTTP
services:
agent:
build:
context: agent
dockerfile: Dockerfile
ports:
- "8080:8080"
environment:
AWS_REGION: ${AWS_REGION:-eu-central-1}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
KNOWLEDGE_BASE_ID: ${KNOWLEDGE_BASE_ID}
AGENTCORE_MEMORY_ID: ${AGENTCORE_MEMORY_ID}
AGENTCORE_GATEWAY_URL: ${AGENTCORE_GATEWAY_URL:-}
GUARDRAIL_ID: ${GUARDRAIL_ID:-}
MODEL_ID: ${MODEL_ID:-anthropic.claude-sonnet-4-6-v1:0}
# OpenTelemetry / CloudWatch observability (disabled locally by default)
OTEL_PYTHON_DISTRO: aws_distro
OTEL_PYTHON_CONFIGURATOR: aws_configurator
OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
OTEL_TRACES_EXPORTER: otlp
OTEL_EXPORTER_OTLP_LOGS_HEADERS: ${OTEL_EXPORTER_OTLP_LOGS_HEADERS:-x-aws-log-group=/aws/bedrockagentcore/local,x-aws-log-stream=default,x-aws-metric-namespace=bedrock-agentcore}
OTEL_RESOURCE_ATTRIBUTES: ${OTEL_RESOURCE_ATTRIBUTES:-service.name=strands-agent}
AGENT_OBSERVABILITY_ENABLED: ${AGENT_OBSERVABILITY_ENABLED:-false}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/ping"]
interval: 10s
timeout: 5s
retries: 5
start_period: 15s
ui:
build:
context: ui
dockerfile: Dockerfile
ports:
- "8000:8000"
environment:
AWS_REGION: ${AWS_REGION:-eu-central-1}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
# Direct HTTP to the local agent container (bypasses AgentCore Runtime)
AGENT_ENDPOINT_URL: http://agent:8080
depends_on:
agent:
condition: service_healthy