Add Dockerfile for Claude Code

This commit is contained in:
2025-10-28 14:32:05 -07:00
commit b3b0fd1e48
3 changed files with 342 additions and 0 deletions

58
run.sh Executable file
View File

@@ -0,0 +1,58 @@
#!/bin/sh -xe
# Build and launch docker container.
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
TAG=bingmann/dev:claude-docker
CONTAINER=claude-$(pwd | md5sum | cut -c1-8)
if [[ "$1" == "bash" ]]; then
docker exec --interactive --tty --user tb "$CONTAINER" /bin/bash
exit 0
fi
docker build $SCRIPT_DIR --tag "$TAG"
if [[ "$1" == "push" ]]; then
docker push "$TAG"
exit 0
elif [[ "$1" == "build" ]]; then
echo "Build completed for $TAG"
exit 0
fi
CMDS="$@"
OPTS=""
if [[ "$CMDS" == "" ]]; then
CMDS="/usr/local/bin/init-firewall.sh"
else
OPTS="--user tb"
fi
CMDS="/bin/bash"
OPTS="--user tb"
# --network=host \
docker run --rm --interactive --tty \
--name "$CONTAINER" \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
--log-driver none \
--network host \
-v "${XDG_RUNTIME_DIR}/pulse/native:${XDG_RUNTIME_DIR}/pulse/native" \
-v "$HOME/.config/pulse/cookie:/root/.config/pulse/cookie" \
-e "TERM=$TERM" \
-e "PULSE_SERVER=unix:${XDG_RUNTIME_DIR}/pulse/native" \
-v "$PWD/:$PWD/" \
-v "$HOME/.bash_history:/home/$(whoami)/.bash_history" \
-v "$HOME/.claude:/home/$(whoami)/.claude" \
-v "$HOME/.claude.json:/home/$(whoami)/.claude.json" \
-v "$HOME/.git-credentials:/home/$(whoami)/.git-credentials:ro" \
-e "DISPLAY=$DISPLAY" \
-v "/tmp/.X11-unix:/tmp/.X11-unix" \
--device /dev/dri --device /dev/snd --device /dev/vga_arbiter \
-w "$PWD" \
$OPTS \
"$TAG" "$CMDS"