You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add standalone binary for arbitrary Dockerfile support (#280)
* Add standalone binary for arbitrary Dockerfile support
Compiles sandbox-container to a self-contained binary at /sandbox that
can be copied into any Docker image. Includes backwards compatibility
for existing startup scripts via legacy JS bundle.
* Move binary to /container-server/sandbox
* Add --platform flag to docker create commands
* Fix signal handling and refactor server lifecycle
Signal handlers are now registered before spawning the child process
to close a race window. Exit codes use os.constants.signals for correct
Unix convention mapping. Server cleanup is returned from startServer()
rather than relying on module-level state, making the dependency between
server startup and shutdown handlers explicit.
* Switch base images from Alpine to glibc for binary compat
The standalone binary compiled on glibc won't run on Alpine (musl).
Using node:20-slim and oven/bun:1 ensures the binary works on
standard Linux distributions like Debian, Ubuntu, and RHEL.
* Add E2E tests for standalone binary pattern
Tests that the sandbox binary works when copied into arbitrary Docker
images. Validates command execution, file operations with MIME type
detection, and CMD passthrough to user startup scripts.
* Document standalone binary pattern and dependencies
Documents how to add sandbox capabilities to arbitrary Docker images
by copying the /sandbox binary. Lists required dependencies (file,
git) and what works without extra packages.
* Add CMD passthrough docs and release checksums
Document the supervisor lifecycle model for standalone binary users.
Add SHA256 checksum generation for binary releases.
const body = `### 🐳 Docker Images Published\n\n**Default (no Python):**\n\`\`\`dockerfile\nFROM ${defaultTag}\n\`\`\`\n\n**With Python:**\n\`\`\`dockerfile\nFROM ${pythonTag}\n\`\`\`\n\n**With OpenCode:**\n\`\`\`dockerfile\nFROM ${opencodeTag}\n\`\`\`\n\n**Version:** \`${version}\`\n\nUse the \`-python\` variant for Python code execution, or \`-opencode\` for the OpenCode AI coding agent.`;
0 commit comments