feat(docker): add sandbox docker-compose files for enhanced host isolation
Add docker-compose-sandbox.yml and docker-compose-sandbox.full.yml with security hardening: read-only filesystem, capability dropping, resource limits (2 GB RAM, 2 CPUs, 500 PIDs), and dedicated bridge network. Update documentation in all 6 languages (en, pt-br, fr, ja, vi, zh).
This commit is contained in:
parent
e73d9d959e
commit
4259aa4f19
8 changed files with 454 additions and 0 deletions
76
docker/docker-compose-sandbox.full.yml
Normal file
76
docker/docker-compose-sandbox.full.yml
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
services:
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
# PicoClaw Agent (one-shot query) - Full MCP Support - Sandboxed
|
||||||
|
# docker compose -f docker/docker-compose-sandbox.full.yml run --rm picoclaw-agent -m "Hello"
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
picoclaw-agent:
|
||||||
|
build:
|
||||||
|
context: ..
|
||||||
|
dockerfile: docker/Dockerfile.full
|
||||||
|
container_name: picoclaw-agent-full-sandbox
|
||||||
|
profiles:
|
||||||
|
- agent
|
||||||
|
volumes:
|
||||||
|
- ../config/config.json:/root/.picoclaw/config.json:ro
|
||||||
|
- picoclaw-workspace:/root/.picoclaw/workspace
|
||||||
|
- picoclaw-npm-cache:/root/.npm # npm cache for faster MCP server installs
|
||||||
|
entrypoint: ["picoclaw", "agent"]
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
# ── Sandbox ──
|
||||||
|
read_only: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp:size=100M
|
||||||
|
- /run:size=10M
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
mem_limit: 2g
|
||||||
|
cpus: 2
|
||||||
|
pids_limit: 500
|
||||||
|
networks:
|
||||||
|
- picoclaw-net
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
# PicoClaw Gateway (Long-running Bot) - Full MCP Support - Sandboxed
|
||||||
|
# docker compose -f docker/docker-compose-sandbox.full.yml --profile gateway up
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
picoclaw-gateway:
|
||||||
|
build:
|
||||||
|
context: ..
|
||||||
|
dockerfile: docker/Dockerfile.full
|
||||||
|
container_name: picoclaw-gateway-full-sandbox
|
||||||
|
restart: unless-stopped
|
||||||
|
profiles:
|
||||||
|
- gateway
|
||||||
|
volumes:
|
||||||
|
# Configuration file
|
||||||
|
- ../config/config.json:/root/.picoclaw/config.json:ro
|
||||||
|
# Persistent workspace (sessions, memory, logs)
|
||||||
|
- picoclaw-workspace:/root/.picoclaw/workspace
|
||||||
|
# NPM cache for faster MCP server installs
|
||||||
|
- picoclaw-npm-cache:/root/.npm
|
||||||
|
command: ["gateway"]
|
||||||
|
# ── Sandbox ──
|
||||||
|
read_only: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp:size=100M
|
||||||
|
- /run:size=10M
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
mem_limit: 2g
|
||||||
|
cpus: 2
|
||||||
|
pids_limit: 500
|
||||||
|
networks:
|
||||||
|
- picoclaw-net
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
picoclaw-workspace:
|
||||||
|
picoclaw-npm-cache: # Cache npm packages to speed up MCP server installations
|
||||||
|
|
||||||
|
networks:
|
||||||
|
picoclaw-net:
|
||||||
|
driver: bridge
|
||||||
96
docker/docker-compose-sandbox.yml
Normal file
96
docker/docker-compose-sandbox.yml
Normal file
|
|
@ -0,0 +1,96 @@
|
||||||
|
services:
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
# PicoClaw Agent (one-shot query) - Sandboxed
|
||||||
|
# docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent -m "Hello"
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
picoclaw-agent:
|
||||||
|
image: docker.io/sipeed/picoclaw:latest
|
||||||
|
container_name: picoclaw-agent-sandbox
|
||||||
|
profiles:
|
||||||
|
- agent
|
||||||
|
#extra_hosts:
|
||||||
|
# - "host.docker.internal:host-gateway"
|
||||||
|
volumes:
|
||||||
|
- ./data:/root/.picoclaw
|
||||||
|
entrypoint: ["picoclaw", "agent"]
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
# ── Sandbox ──
|
||||||
|
read_only: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp:size=100M
|
||||||
|
- /run:size=10M
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
mem_limit: 2g
|
||||||
|
cpus: 2
|
||||||
|
pids_limit: 500
|
||||||
|
networks:
|
||||||
|
- picoclaw-net
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
# PicoClaw Gateway (Long-running Bot) - Sandboxed
|
||||||
|
# docker compose -f docker/docker-compose-sandbox.yml --profile gateway up
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
picoclaw-gateway:
|
||||||
|
image: docker.io/sipeed/picoclaw:latest
|
||||||
|
container_name: picoclaw-gateway-sandbox
|
||||||
|
restart: on-failure
|
||||||
|
profiles:
|
||||||
|
- gateway
|
||||||
|
#extra_hosts:
|
||||||
|
# - "host.docker.internal:host-gateway"
|
||||||
|
volumes:
|
||||||
|
- ./data:/root/.picoclaw
|
||||||
|
# ── Sandbox ──
|
||||||
|
read_only: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp:size=100M
|
||||||
|
- /run:size=10M
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
mem_limit: 2g
|
||||||
|
cpus: 2
|
||||||
|
pids_limit: 500
|
||||||
|
networks:
|
||||||
|
- picoclaw-net
|
||||||
|
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
# PicoClaw Launcher (Web Console + Gateway) - Sandboxed
|
||||||
|
# docker compose -f docker/docker-compose-sandbox.yml --profile launcher up
|
||||||
|
# ─────────────────────────────────────────────
|
||||||
|
picoclaw-launcher:
|
||||||
|
image: docker.io/sipeed/picoclaw:launcher
|
||||||
|
container_name: picoclaw-launcher-sandbox
|
||||||
|
restart: on-failure
|
||||||
|
profiles:
|
||||||
|
- launcher
|
||||||
|
environment:
|
||||||
|
- PICOCLAW_GATEWAY_HOST=0.0.0.0
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:18800:18800"
|
||||||
|
- "127.0.0.1:18790:18790"
|
||||||
|
volumes:
|
||||||
|
- ./data:/root/.picoclaw
|
||||||
|
# ── Sandbox ──
|
||||||
|
read_only: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp:size=100M
|
||||||
|
- /run:size=10M
|
||||||
|
security_opt:
|
||||||
|
- no-new-privileges:true
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
mem_limit: 2g
|
||||||
|
cpus: 2
|
||||||
|
pids_limit: 500
|
||||||
|
networks:
|
||||||
|
- picoclaw-net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
picoclaw-net:
|
||||||
|
driver: bridge
|
||||||
|
|
@ -63,6 +63,53 @@ docker compose -f docker/docker-compose.yml pull
|
||||||
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 🐳 Docker Compose - Sandbox
|
||||||
|
|
||||||
|
You can run PicoClaw in a sandboxed Docker environment for enhanced host isolation. The sandbox compose files add security hardening: read-only filesystem, capability dropping, resource limits (2 GB RAM, 2 CPUs, 500 PIDs), and a dedicated network.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. First run — auto-generates docker/data/config.json then exits
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up
|
||||||
|
# The container prints "First-run setup complete." and stops.
|
||||||
|
|
||||||
|
# 2. Set your API keys
|
||||||
|
vim docker/data/config.json # Set provider API keys, bot tokens, etc.
|
||||||
|
|
||||||
|
# 3. Start
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 4. Check logs
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml logs -f picoclaw-gateway
|
||||||
|
|
||||||
|
# 5. Stop
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway down
|
||||||
|
```
|
||||||
|
|
||||||
|
### Launcher Mode (Web Console)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile launcher up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Agent Mode (One-shot)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Ask a question
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent -m "What is 2+2?"
|
||||||
|
|
||||||
|
# Interactive mode
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Update
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml pull
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
### 🚀 Quick Start
|
### 🚀 Quick Start
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,53 @@ docker compose -f docker/docker-compose.yml pull
|
||||||
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 🐳 Docker Compose - Sandbox
|
||||||
|
|
||||||
|
Vous pouvez exécuter PicoClaw dans un environnement Docker sandboxé pour une meilleure isolation de l'hôte. Les fichiers compose sandbox ajoutent des protections de sécurité : système de fichiers en lecture seule, suppression des capabilities, limites de ressources (2 Go RAM, 2 CPUs, 500 PIDs) et un réseau dédié.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Premier lancement — génère automatiquement docker/data/config.json puis s'arrête
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up
|
||||||
|
# Le conteneur affiche "First-run setup complete." et s'arrête.
|
||||||
|
|
||||||
|
# 2. Configurer vos clés API
|
||||||
|
vim docker/data/config.json # Set provider API keys, bot tokens, etc.
|
||||||
|
|
||||||
|
# 3. Démarrer
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 4. Vérifier les logs
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml logs -f picoclaw-gateway
|
||||||
|
|
||||||
|
# 5. Arrêter
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway down
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mode Launcher (Console Web)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile launcher up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mode Agent (One-shot)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Poser une question
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent -m "What is 2+2?"
|
||||||
|
|
||||||
|
# Mode interactif
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mise à jour
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml pull
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
### 🚀 Démarrage Rapide
|
### 🚀 Démarrage Rapide
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,53 @@ docker compose -f docker/docker-compose.yml pull
|
||||||
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 🐳 Docker Compose - Sandbox
|
||||||
|
|
||||||
|
ホストとの分離を強化するため、サンドボックス化された Docker 環境で PicoClaw を実行できます。サンドボックス compose ファイルは、読み取り専用ファイルシステム、capability の削除、リソース制限(2 GB RAM、2 CPU、500 PID)、専用ネットワークなどのセキュリティ強化を追加します。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 初回実行 — docker/data/config.json を自動生成して終了
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up
|
||||||
|
# コンテナが "First-run setup complete." と表示して停止します
|
||||||
|
|
||||||
|
# 2. API Key を設定
|
||||||
|
vim docker/data/config.json # provider API key、Bot Token などを設定
|
||||||
|
|
||||||
|
# 3. 起動
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 4. ログを確認
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml logs -f picoclaw-gateway
|
||||||
|
|
||||||
|
# 5. 停止
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway down
|
||||||
|
```
|
||||||
|
|
||||||
|
### Launcher モード (Web コンソール)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile launcher up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Agent モード (ワンショット)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 質問する
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent -m "2+2は?"
|
||||||
|
|
||||||
|
# インタラクティブモード
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### イメージの更新
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml pull
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 クイックスタート
|
## 🚀 クイックスタート
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,53 @@ docker compose -f docker/docker-compose.yml pull
|
||||||
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 🐳 Docker Compose - Sandbox
|
||||||
|
|
||||||
|
Você pode executar o PicoClaw em um ambiente Docker com sandbox para maior isolamento do host. Os arquivos compose sandbox adicionam proteções de segurança: filesystem somente leitura, remoção de capabilities, limites de recursos (2 GB RAM, 2 CPUs, 500 PIDs) e uma rede dedicada.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Primeira execução — gera automaticamente docker/data/config.json e encerra
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up
|
||||||
|
# O contêiner exibe "First-run setup complete." e para.
|
||||||
|
|
||||||
|
# 2. Configure suas chaves de API
|
||||||
|
vim docker/data/config.json # Set provider API keys, bot tokens, etc.
|
||||||
|
|
||||||
|
# 3. Iniciar
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 4. Verificar logs
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml logs -f picoclaw-gateway
|
||||||
|
|
||||||
|
# 5. Parar
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway down
|
||||||
|
```
|
||||||
|
|
||||||
|
### Modo Launcher (Console Web)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile launcher up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Modo Agent (One-shot)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Fazer uma pergunta
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent -m "What is 2+2?"
|
||||||
|
|
||||||
|
# Modo interativo
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Atualização
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml pull
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
### 🚀 Início Rápido
|
### 🚀 Início Rápido
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,53 @@ docker compose -f docker/docker-compose.yml pull
|
||||||
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 🐳 Docker Compose - Sandbox
|
||||||
|
|
||||||
|
Bạn có thể chạy PicoClaw trong môi trường Docker sandbox để tăng cường cách ly với host. Các file compose sandbox bổ sung các biện pháp bảo mật: filesystem chỉ đọc, loại bỏ capability, giới hạn tài nguyên (2 GB RAM, 2 CPU, 500 PID) và mạng chuyên dụng.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Lần chạy đầu tiên — tự động tạo docker/data/config.json rồi thoát
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up
|
||||||
|
# Container hiển thị "First-run setup complete." và dừng lại.
|
||||||
|
|
||||||
|
# 2. Cấu hình API key của bạn
|
||||||
|
vim docker/data/config.json # Set provider API keys, bot tokens, etc.
|
||||||
|
|
||||||
|
# 3. Khởi động
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 4. Kiểm tra log
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml logs -f picoclaw-gateway
|
||||||
|
|
||||||
|
# 5. Dừng
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway down
|
||||||
|
```
|
||||||
|
|
||||||
|
### Chế Độ Launcher (Web Console)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile launcher up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Chế Độ Agent (One-shot)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Đặt câu hỏi
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent -m "What is 2+2?"
|
||||||
|
|
||||||
|
# Chế độ tương tác
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cập Nhật
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml pull
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
### 🚀 Bắt Đầu Nhanh
|
### 🚀 Bắt Đầu Nhanh
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,53 @@ docker compose -f docker/docker-compose.yml pull
|
||||||
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
docker compose -f docker/docker-compose.yml --profile gateway up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 🐳 Docker Compose - Sandbox
|
||||||
|
|
||||||
|
您可以在沙箱化的 Docker 环境中运行 PicoClaw,以增强与宿主机的隔离。沙箱 compose 文件增加了安全加固:只读文件系统、移除 capabilities、资源限制(2 GB 内存、2 CPU、500 PID)和专用网络。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 首次运行 — 自动生成 docker/data/config.json 后退出
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up
|
||||||
|
# 容器打印 "First-run setup complete." 后自动停止
|
||||||
|
|
||||||
|
# 2. 填写 API Key 等配置
|
||||||
|
vim docker/data/config.json # 设置 provider API key、Bot Token 等
|
||||||
|
|
||||||
|
# 3. 正式启动
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 4. 查看日志
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml logs -f picoclaw-gateway
|
||||||
|
|
||||||
|
# 5. 停止
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway down
|
||||||
|
```
|
||||||
|
|
||||||
|
### Launcher 模式 (Web 控制台)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile launcher up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Agent 模式 (一次性运行)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 提问
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent -m "2+2 等于几?"
|
||||||
|
|
||||||
|
# 交互模式
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml run --rm picoclaw-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### 更新镜像
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml pull
|
||||||
|
docker compose -f docker/docker-compose-sandbox.yml --profile gateway up -d
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 快速开始
|
## 🚀 快速开始
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue