A Docker container image that contains most popular language runtimes and tools to be reused for multiple software development tasks.
This sandbox provides a pre-configured development environment with common language runtimes installed. It is designed to be AI-agnostic and can be used as a base image for various development workflows.
- Node.js 20 (via NVM) + npm + Bun + Deno
- Python (latest stable via pyenv)
- Go (latest stable)
- Rust (via rustup) + Cargo
- Java 21 LTS (Eclipse Temurin via SDKMAN)
- PHP 8.3 (via Homebrew)
- Perl (latest stable via Perlbrew)
- .NET SDK 8.0
- Lean (via elan)
- Rocq/Coq (via opam)
- CMake
- Make
- GCC/G++
- Clang/Clang++
- LLVM
- LLD Linker
- Git
- GitHub CLI (gh)
- Homebrew
docker pull ghcr.io/link-foundation/sandbox:latestdocker run -it ghcr.io/link-foundation/sandbox:latestFROM ghcr.io/link-foundation/sandbox:latest
# Your additional setup here
COPY . /workspace
RUN npm installgit clone https://github.com/link-foundation/sandbox.git
cd sandbox
docker build -t sandbox .The image is built for both linux/amd64 and linux/arm64 architectures.
IMPORTANT: ARM64 builds MUST use native ARM64 runners.
| Architecture | Runner | Build Time |
|---|---|---|
linux/amd64 |
ubuntu-latest |
~5-10 minutes |
linux/arm64 |
ubuntu-24.04-arm (native) |
~30-60 minutes |
Native ARM64 runners provide optimal build performance for compilation-heavy workloads. Emulation would incur a 10-30x performance penalty.
For detailed analysis, see Case Study: Issue #7.
The container runs as the sandbox user with home directory at /home/sandbox. All language runtimes are installed in user-local directories:
- Node.js:
~/.nvm - Python:
~/.pyenv - Go:
~/.go - Rust:
~/.cargo - Java:
~/.sdkman - Lean:
~/.elan - Perl:
~/.perl5 - OCaml/Rocq:
~/.opam
- ARCHITECTURE.md - System architecture and design decisions
- REQUIREMENTS.md - Project requirements and constraints
- docs/case-studies/ - Case studies and incident analysis
MIT License - see LICENSE for details.