singularity-forge/docker/docker-compose.yml
Tom Boucher 67f47bea06 feat(docker): add official Docker sandbox template for isolated GSD auto mode (#2360)
Ship a Dockerfile.sandbox, docker-compose.yml, .env.example, and docs so
users can run GSD auto mode inside an isolated Docker sandbox (MicroVM)
without risk to the host filesystem, SSH keys, or other projects.

- Dockerfile.sandbox: Node 22 base, gsd-pi pre-installed, non-root user, port 3000
- docker-compose.yml: workspace volume mount, persistent .gsd state, env_file support
- .env.example: template for LLM provider keys and optional tool credentials
- docker/README.md: setup guide covering sandbox CLI, Compose, two-terminal workflow,
  credential injection, and network allowlisting
- .dockerignore: project-root ignore file for efficient Docker builds
- src/tests/docker-template.test.ts: 13 structural tests verifying all template files

Fixes #1544

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 13:57:59 -06:00

34 lines
838 B
YAML

# Docker Compose for running GSD in a sandbox
# Usage: docker compose -f docker/docker-compose.yml up
#
# Copy docker/.env.example to docker/.env and fill in your API keys first.
# See docker/README.md for full setup instructions.
services:
gsd:
build:
context: .
dockerfile: Dockerfile.sandbox
args:
GSD_VERSION: latest
container_name: gsd-sandbox
ports:
- "3000:3000"
volumes:
# Sync project code into the sandbox
- ../:/workspace
# Persistent GSD state across container restarts
- gsd-state:/home/gsd/.gsd
env_file:
- .env
environment:
- NODE_ENV=development
user: "1000:1000"
stdin_open: true
tty: true
# Override entrypoint for interactive shell access
# entrypoint: /bin/bash
volumes:
gsd-state:
driver: local