61 lines
1.8 KiB
YAML
61 lines
1.8 KiB
YAML
services:
|
|
# --- 1. DATENBANK (PostgreSQL) ---
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: ${STACK_NAME:-opencode_test}_db
|
|
restart: always
|
|
environment:
|
|
POSTGRES_USER: ${DB_USER:-opencode_user}
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD:-test_password_123_secure}
|
|
POSTGRES_DB: ${DB_NAME:-opencode_db}
|
|
volumes:
|
|
# Wenn HOST_DB_VOLUME_PATH leer ist, greift das lokale Named Volume
|
|
- ${HOST_DB_VOLUME_PATH:-db_data}:/var/lib/postgresql/data
|
|
networks:
|
|
- backend_network
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-opencode_user} -d ${DB_NAME:-opencode_db}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
# --- 2. OPENCODE AI AGENT (ghcr.io) ---
|
|
app:
|
|
image: ghcr.io/anomalyco/opencode:${APP_IMAGE_TAG:-latest}
|
|
container_name: ${STACK_NAME:-opencode_test}_agent
|
|
restart: always
|
|
|
|
# WICHTIG für Terminal-Apps (TUI) im Container:
|
|
stdin_open: true
|
|
tty: true
|
|
|
|
environment:
|
|
# AI Provider API Keys (Werden über Portainer injiziert)
|
|
- OPENAI_API_KEY=${OPENAI_KEY:-}
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_KEY:-}
|
|
- OPENCODE_API_KEY=${OPENCODE_ZEN_KEY:-} # Falls OpenCode Zen genutzt wird
|
|
|
|
# Datenbank-Verbindung für den Agenten
|
|
- DB_HOST=db
|
|
- DB_USER=${DB_USER:-opencode_user}
|
|
- DB_PASSWORD=${DB_PASSWORD:-test_password_123_secure}
|
|
- DB_NAME=${DB_NAME:-opencode_db}
|
|
volumes:
|
|
# Ihr Code-Verzeichnis (Workspace), das der Agent analysieren soll
|
|
- ${HOST_WORKSPACE_PATH:-workspace_data}:/workspace
|
|
working_dir: /workspace
|
|
networks:
|
|
- backend_network
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
# Die Named Volumes als automatischer Fallback für die Test-Umgebung
|
|
volumes:
|
|
db_data:
|
|
workspace_data:
|
|
|
|
networks:
|
|
backend_network:
|
|
driver: bridge
|