Split fake multi-stage Dockerfile into independent CI builder and runtime images. Add proper entrypoint with UID/GID remapping via PUID/PGID, sentinel-based first-boot bootstrap, pre-creation of critical file targets, and signal-forwarding privilege drop via gosu. Standardize on Node 24, split compose into minimal + full reference. Closes #9
44 lines
1.2 KiB
Text
44 lines
1.2 KiB
Text
# ──────────────────────────────────────────────
|
|
# GSD Docker Sandbox — Environment Variables
|
|
# Copy this file to .env and fill in your keys.
|
|
# ──────────────────────────────────────────────
|
|
|
|
# ── Container User Identity ──
|
|
# Match your host UID/GID to avoid permission issues on bind mounts.
|
|
# Run `id -u` and `id -g` on your host to find the right values.
|
|
PUID=1000
|
|
PGID=1000
|
|
|
|
# ── LLM Provider API Keys (at least one required) ──
|
|
|
|
# Anthropic (Claude)
|
|
# ANTHROPIC_API_KEY=sk-ant-...
|
|
|
|
# OpenAI
|
|
# OPENAI_API_KEY=sk-...
|
|
|
|
# Google (Gemini)
|
|
# GOOGLE_API_KEY=...
|
|
|
|
# OpenRouter (multi-provider gateway)
|
|
# OPENROUTER_API_KEY=sk-or-...
|
|
|
|
# ── Optional: Research & Search Tools ──
|
|
|
|
# Brave Search API
|
|
# BRAVE_API_KEY=...
|
|
|
|
# Tavily Search API
|
|
# TAVILY_API_KEY=tvly-...
|
|
|
|
# Jina AI (reader/search)
|
|
# JINA_API_KEY=...
|
|
|
|
# ── Optional: Git & GitHub ──
|
|
|
|
# GitHub personal access token (for PR operations)
|
|
# GITHUB_TOKEN=ghp_...
|
|
|
|
# Git author identity inside the sandbox
|
|
# GIT_AUTHOR_NAME=Your Name
|
|
# GIT_AUTHOR_EMAIL=you@example.com
|