Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Robot Dev Team Project
# File: docker-compose.yml
# Description: Docker Compose stack wiring for the webhook automation service.
# License: MIT
# SPDX-License-Identifier: MIT
# Copyright (c) 2025 MCKNLY LLC

services:
  app:
    container_name: robot-dev-team
    build: .
    restart: unless-stopped
    ports:
      - "${APP_PORT:-8888}:8080"
    env_file:
      - .env
    environment:
      LOCAL_UID: ${LOCAL_UID:-1000}
      LOCAL_GID: ${LOCAL_GID:-1000}
    # Allows the container to reach the Docker host (and services mapped to
    # host ports, such as a locally deployed GitLab instance) using the stable
    # name 'host.docker.internal'. Required on Linux; Docker Desktop on
    # macOS/Windows provides this automatically.
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - ./prompts:/work/prompts:ro
      - ./config:/work/config:ro
      - ./run-logs:/work/run-logs
      - ${CLAUDE_CONFIG_PATH:-$HOME/.claude}:/home/appuser/.claude
      - ${GEMINI_CONFIG_PATH:-$HOME/.gemini}:/home/appuser/.gemini
      - ${CODEX_CONFIG_PATH:-$HOME/.codex}:/home/appuser/.codex
      # OpenCode (optional, disabled by default). Mount the pre-authenticated host
      # config + data dirs so provider credentials (~/.local/share/opencode/auth.json)
      # carry into the container. Uncomment alongside the opencode routes/env to enable.
      #- ${OPENCODE_CONFIG_PATH:-$HOME/.config/opencode}:/home/appuser/.config/opencode
      #- ${OPENCODE_DATA_PATH:-$HOME/.local/share/opencode}:/home/appuser/.local/share/opencode
      # Goose (optional, disabled by default). Unlike the mounts above, this one
      # lands on a `-host` staging path and is read-only ON PURPOSE: the
      # entrypoint materializes the real config at ~/.config/goose from it (see
      # app/goose_config.py), rewriting any loopback base_url so a locally served
      # model reaches the host instead of resolving to the container. Mounting
      # straight onto ~/.config/goose would make the container rewrite the
      # operator's host config -- breaking Goose ON the host. Do not "fix" this.
      #- ${GOOSE_CONFIG_PATH:-$HOME/.config/goose}:/home/appuser/.config/goose-host:ro
      # Grok Build (optional, disabled by default). Mount the pre-authenticated host
      # config dir so the OAuth credentials in ~/.grok/auth.json carry into the
      # container (run `grok login` on the host first). Read-write like the mounts
      # above, not `:ro`: the CLI refreshes cached state under ~/.grok on startup.
      # Uncomment alongside the grok routes/env to enable.
      #- ${GROK_CONFIG_PATH:-$HOME/.grok}:/home/appuser/.grok
      # Pi (optional, disabled by default). Mount the pre-authenticated host config
      # dir so the provider key in ~/.pi/agent/auth.json (OpenRouter for the default
      # model) carries into the container. Read-write like the mounts above, not
      # `:ro`: Pi may refresh cached state (models-store.json, version-check marker)
      # under this dir. The path is the narrow `agent` root on purpose -- it holds
      # auth.json/settings.json/sessions, not all of ~/.pi. The Pi block in
      # .env.example sets PI_SKIP_VERSION_CHECK=1 / PI_TELEMETRY=0 for quieter,
      # non-mutating starts. Uncomment alongside the pi routes/env to enable.
      #- ${PI_CONFIG_PATH:-$HOME/.pi/agent}:/home/appuser/.pi/agent
      # Parent mount for project repositories (auto-discovery + on-demand cloning)
      # Edit these paths to match your local projects directory structure
      # Read-write mount for work routes
      - ./projects:/work/projects
      # Read-only mount for analysis/review routes
      - ./projects:/work/projects-ro:ro