72 lines
1.9 KiB
YAML
72 lines
1.9 KiB
YAML
# Development Environment for ZeroClaw Agentic Testing
|
|
#
|
|
# Use this for:
|
|
# - Running the agent in a sandboxed environment
|
|
# - Testing dangerous commands safely
|
|
# - Developing new skills/integrations
|
|
#
|
|
# Usage:
|
|
# cd dev && ./cli.sh up
|
|
# or from root: ./dev/cli.sh up
|
|
name: zeroclaw-dev
|
|
services:
|
|
# ── The Agent (Development Image) ──
|
|
# Builds from source using the 'dev' stage of the root Dockerfile
|
|
zeroclaw-dev:
|
|
build:
|
|
context: ..
|
|
dockerfile: Dockerfile
|
|
target: dev
|
|
container_name: zeroclaw-dev
|
|
restart: unless-stopped
|
|
environment:
|
|
- ZEROCLAW_GATEWAY_PORT=3000
|
|
- SANDBOX_HOST=zeroclaw-sandbox
|
|
secrets:
|
|
- source: zeroclaw_env
|
|
target: zeroclaw_env
|
|
entrypoint: ["/bin/bash", "-lc"]
|
|
command:
|
|
- |
|
|
if [ -f /run/secrets/zeroclaw_env ]; then
|
|
set -a
|
|
. /run/secrets/zeroclaw_env
|
|
set +a
|
|
fi
|
|
exec zeroclaw gateway --port "${ZEROCLAW_GATEWAY_PORT:-3000}" --host "[::]"
|
|
volumes:
|
|
# Mount single config file (avoids shadowing other files in .zeroclaw)
|
|
- ../target/.zeroclaw/config.toml:/zeroclaw-data/.zeroclaw/config.toml
|
|
# Mount shared workspace
|
|
- ../playground:/zeroclaw-data/workspace
|
|
ports:
|
|
- "127.0.0.1:3000:3000"
|
|
networks:
|
|
- dev-net
|
|
|
|
# ── The Sandbox (Ubuntu Environment) ──
|
|
# A fully loaded Ubuntu environment for the agent to play in.
|
|
sandbox:
|
|
build:
|
|
context: sandbox # Context relative to dev/
|
|
dockerfile: Dockerfile
|
|
container_name: zeroclaw-sandbox
|
|
hostname: dev-box
|
|
command: ["tail", "-f", "/dev/null"]
|
|
working_dir: /home/developer/workspace
|
|
user: developer
|
|
environment:
|
|
- TERM=xterm-256color
|
|
- SHELL=/bin/bash
|
|
volumes:
|
|
- ../playground:/home/developer/workspace # Mount local playground
|
|
networks:
|
|
- dev-net
|
|
|
|
networks:
|
|
dev-net:
|
|
driver: bridge
|
|
|
|
secrets:
|
|
zeroclaw_env:
|
|
file: ../.env
|