ralph-claude-code/docker/ralph-docker
Claude c01133bd8d
feat(docker): add Docker-based Windows and cross-platform support
Enables Ralph to run inside a Docker container for Windows users
(via Docker Desktop) and anyone preferring containerized execution.

New files:
- Dockerfile (Debian slim + Node.js 20 + all Ralph dependencies)
- docker-compose.yml for easy startup
- docker/docker-entrypoint.sh with UID/GID remapping
- docker/ralph-docker (bash wrapper) and ralph-docker.ps1 (PowerShell)
- .gitattributes to prevent Windows CRLF line ending corruption
- .dockerignore for clean build context
- .github/workflows/docker.yml CI workflow
- docs/user-guide/04-docker-setup.md comprehensive documentation

Updated: README.md, CLAUDE.md, docs/user-guide/README.md, .gitignore

https://claude.ai/code/session_01SNzxUdH1Udf26rN3RKNNzu
2026-02-10 20:54:23 +00:00

45 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
# ralph-docker - Convenience wrapper for running Ralph in Docker
#
# Usage:
# ./docker/ralph-docker [ralph-options]
#
# Examples:
# ./docker/ralph-docker --help
# ./docker/ralph-docker --monitor
# ./docker/ralph-docker --live --verbose
#
# Environment:
# ANTHROPIC_API_KEY Required. Your Anthropic API key.
# RALPH_IMAGE Optional. Docker image name (default: ralph-claude-code:latest)
set -e
IMAGE_NAME="${RALPH_IMAGE:-ralph-claude-code:latest}"
if [ -z "$ANTHROPIC_API_KEY" ]; then
echo "Error: ANTHROPIC_API_KEY environment variable is not set."
echo "Export it first: export ANTHROPIC_API_KEY=sk-ant-..."
exit 1
fi
EXTRA_VOLUMES=()
# Mount git config if available
if [ -f "$HOME/.gitconfig" ]; then
EXTRA_VOLUMES+=(-v "$HOME/.gitconfig:/home/ralph/.gitconfig:ro")
fi
# Mount SSH keys if available
if [ -d "$HOME/.ssh" ]; then
EXTRA_VOLUMES+=(-v "$HOME/.ssh:/home/ralph/.ssh:ro")
fi
docker run -it --rm \
-e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
-e RALPH_UID="$(id -u)" \
-e RALPH_GID="$(id -g)" \
-v "$(pwd):/workspace" \
"${EXTRA_VOLUMES[@]}" \
"$IMAGE_NAME" \
ralph "$@"