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>
34 lines
838 B
YAML
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
|