# Base docker-compose — shared service definition. # Combine with overlays for your deployment: # # Recommended (+ Web Dashboard): # docker compose -f docker-compose.yml -f docker-compose.postgres.yml -f docker-compose.selfservice.yml up -d --build # # Without dashboard: docker compose -f docker-compose.yml -f docker-compose.postgres.yml up -d --build # With OTel tracing: docker compose -f docker-compose.yml -f docker-compose.postgres.yml -f docker-compose.otel.yml up -d --build services: goclaw: build: context: . dockerfile: Dockerfile args: ENABLE_OTEL: "false" ENABLE_PYTHON: "true" ports: - "${GOCLAW_PORT:-18790}:18790" env_file: - path: .env required: false environment: - GOCLAW_HOST=0.0.0.0 - GOCLAW_PORT=18790 - GOCLAW_CONFIG=/app/data/config.json - GOCLAW_GATEWAY_TOKEN=${GOCLAW_GATEWAY_TOKEN:-} - GOCLAW_ENCRYPTION_KEY=${GOCLAW_ENCRYPTION_KEY:-} - GOCLAW_SKILLS_DIR=/app/data/skills # Debug - GOCLAW_TRACE_VERBOSE=${GOCLAW_TRACE_VERBOSE:-0} volumes: - goclaw-data:/app/data - goclaw-workspace:/app/workspace security_opt: - no-new-privileges:true cap_drop: - ALL read_only: true tmpfs: - /tmp:rw,noexec,nosuid,size=256m deploy: resources: limits: memory: 1G cpus: '2.0' pids: 200 networks: - default - shared restart: unless-stopped volumes: goclaw-data: goclaw-workspace: networks: shared: name: shared driver: bridge