109 lines
3.1 KiB
YAML
109 lines
3.1 KiB
YAML
services:
|
|
surface-smoke:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: production
|
|
args:
|
|
LAMBDA_AGENT_API_REF: ${LAMBDA_AGENT_API_REF:-master}
|
|
environment:
|
|
PYTHONUNBUFFERED: "1"
|
|
SMOKE_TIMEOUT: ${SMOKE_TIMEOUT:-5}
|
|
volumes:
|
|
- agents:/agents
|
|
- ./config:/app/config:ro
|
|
depends_on:
|
|
agent-proxy:
|
|
condition: service_healthy
|
|
command: >
|
|
sh -lc "
|
|
python -m tools.check_matrix_agents --config /app/config/matrix-agents.smoke.yaml --timeout ${SMOKE_TIMEOUT:-5}
|
|
"
|
|
|
|
agent-proxy:
|
|
image: nginx:1.27-alpine
|
|
volumes:
|
|
- ./docker/nginx/smoke-agents.conf:/etc/nginx/nginx.conf:ro
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- nc -z 127.0.0.1 7000
|
|
interval: 2s
|
|
timeout: 2s
|
|
retries: 15
|
|
start_period: 2s
|
|
depends_on:
|
|
agent-0:
|
|
condition: service_healthy
|
|
agent-1:
|
|
condition: service_healthy
|
|
ports:
|
|
- "${SMOKE_PROXY_PORT:-7000}:7000"
|
|
|
|
agent-0:
|
|
build:
|
|
context: ./external/platform-agent
|
|
target: development
|
|
additional_contexts:
|
|
agent_api: ./external/platform-agent_api
|
|
environment:
|
|
PYTHONUNBUFFERED: "1"
|
|
AGENT_ID: ${AGENT_0_ID:-agent-0}
|
|
PROVIDER_MODEL: ${PROVIDER_MODEL:-debug-model}
|
|
PROVIDER_URL: ${PROVIDER_URL:-http://provider.invalid/v1}
|
|
PROVIDER_API_KEY: ${PROVIDER_API_KEY:-debug-key}
|
|
volumes:
|
|
- ./external/platform-agent/src:/app/src
|
|
- ./external/platform-agent_api:/agent_api
|
|
- agents:/shared-agents
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/openapi.json', timeout=2).read()"
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 12
|
|
start_period: 5s
|
|
command: >
|
|
sh -lc "
|
|
mkdir -p /shared-agents/0 &&
|
|
rm -rf /workspace &&
|
|
ln -s /shared-agents/0 /workspace &&
|
|
exec /app/.venv/bin/uvicorn src.main:app --host 0.0.0.0 --port 8000 --no-access-log
|
|
"
|
|
|
|
agent-1:
|
|
build:
|
|
context: ./external/platform-agent
|
|
target: development
|
|
additional_contexts:
|
|
agent_api: ./external/platform-agent_api
|
|
environment:
|
|
PYTHONUNBUFFERED: "1"
|
|
AGENT_ID: ${AGENT_1_ID:-agent-1}
|
|
PROVIDER_MODEL: ${PROVIDER_MODEL:-debug-model}
|
|
PROVIDER_URL: ${PROVIDER_URL:-http://provider.invalid/v1}
|
|
PROVIDER_API_KEY: ${PROVIDER_API_KEY:-debug-key}
|
|
volumes:
|
|
- ./external/platform-agent/src:/app/src
|
|
- ./external/platform-agent_api:/agent_api
|
|
- agents:/shared-agents
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/openapi.json', timeout=2).read()"
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 12
|
|
start_period: 5s
|
|
command: >
|
|
sh -lc "
|
|
mkdir -p /shared-agents/1 &&
|
|
rm -rf /workspace &&
|
|
ln -s /shared-agents/1 /workspace &&
|
|
exec /app/.venv/bin/uvicorn src.main:app --host 0.0.0.0 --port 8000 --no-access-log
|
|
"
|
|
|
|
volumes:
|
|
agents:
|
|
name: ${SURFACES_SMOKE_VOLUME:-surfaces-smoke-agents}
|