# =============================================================================# MiniCode Python — Docker Compose# =============================================================================# Inspired by Hermes Agent's flexible deployment model.# Supports four modes:# 1. cli — Interactive terminal session (default)# 2. gateway — Web API + multi-platform bridge (Telegram/Discord/Slack)# 3. cron — Scheduled task runner# 4. headless — One-shot non-interactive execution## Usage:# docker compose run --rm cli# docker compose run --rm -e ANTHROPIC_API_KEY=sk-ant-... cli# docker compose up gateway# docker compose run --rm headless "帮我分析这个项目的结构"# =============================================================================services:# ===========================================================================# Mode 1: Interactive CLI — the classic MiniCode experience# ===========================================================================cli:build:context: .dockerfile: Dockerfileimage: minicode-py:latestcontainer_name: minicode-clistdin_open: true # docker -itty: true # docker -tinit: true # tini for proper signal handlingenvironment:- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}- ANTHROPIC_MODEL=${ANTHROPIC_MODEL:-claude-sonnet-4-20250514}- MINI_CODE_LOG_LEVEL=${MINI_CODE_LOG_LEVEL:-WARNING}volumes:# Mount workspace (current directory by default)- ${MINI_CODE_WORKSPACE:-.}:/workspace# Persist user-level config, memory, skills across containers- minicode-home:/home/minicode/.mini-codeworking_dir: /workspace# ===========================================================================# Mode 2: Gateway — Web API for multi-platform access# ===========================================================================gateway:build:context: .dockerfile: Dockerfileimage: minicode-py:latestcontainer_name: minicode-gatewayinit: trueports:- "${MINI_CODE_GATEWAY_PORT:-8080}:8080"environment:- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}- ANTHROPIC_MODEL=${ANTHROPIC_MODEL:-claude-sonnet-4-20250514}- MINI_CODE_GATEWAY=1- MINI_CODE_GATEWAY_PORT=8080- MINI_CODE_GATEWAY_HOST=0.0.0.0- MINI_CODE_LOG_LEVEL=${MINI_CODE_LOG_LEVEL:-INFO}# Platform tokens (set in .env or environment)- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}- DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN:-}- SLACK_BOT_TOKEN=${SLACK_BOT_TOKEN:-}volumes:- ${MINI_CODE_WORKSPACE:-.}:/workspace- minicode-home:/home/minicode/.mini-codeworking_dir: /workspacerestart: unless-stoppedhealthcheck:test: ["CMD", "python", "-c", "importurllib.request;urllib.request.urlopen('http://localhost:8080/health')"]interval: 30stimeout: 5sretries: 3start_period: 10s# ===========================================================================# Mode 3: Cron — Scheduled task runner# ===========================================================================cron:build:context: .dockerfile: Dockerfileimage: minicode-py:latestcontainer_name: minicode-croninit: trueentrypoint: ["python", "-m", "minicode.cron_runner"]environment:- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}- ANTHROPIC_MODEL=${ANTHROPIC_MODEL:-claude-sonnet-4-20250514}- MINI_CODE_CRON_CONFIG=/workspace/.mini-code/cron.json- MINI_CODE_LOG_LEVEL=${MINI_CODE_LOG_LEVEL:-INFO}volumes:- ${MINI_CODE_WORKSPACE:-.}:/workspace- minicode-home:/home/minicode/.mini-codeworking_dir: /workspacerestart: unless-stopped# ===========================================================================# Mode 4: Headless — One-shot non-interactive execution# ===========================================================================headless:build:context: .dockerfile: Dockerfileimage: minicode-py:latestcontainer_name: minicode-headlessinit: trueentrypoint: ["python", "-m", "minicode.headless"]environment:- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}- ANTHROPIC_MODEL=${ANTHROPIC_MODEL:-claude-sonnet-4-20250514}- MINI_CODE_LOG_LEVEL=${MINI_CODE_LOG_LEVEL:-WARNING}volumes:- ${MINI_CODE_WORKSPACE:-.}:/workspace- minicode-home:/home/minicode/.mini-codeworking_dir: /workspace# =============================================================================# Named volumes — persist config, memory, and skills across containers# =============================================================================volumes:minicode-home:driver: local
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。