@@ -8,6 +8,7 @@ NAME="claudecode-$(uuidgen -r | cut -d- -f1)"
88INIT_SCRIPT=" "
99APK_PACKAGES=" "
1010PODMAN_ARGS=" "
11+ NETWORK=" "
1112
1213# Process arguments
1314while [[ $# -gt 0 ]]; do
@@ -22,6 +23,8 @@ while [[ $# -gt 0 ]]; do
2223 --local Use local image 'claude-code:latest' instead of remote
2324 --init-script FILE Execute initialization script
2425 --apk-packages LIST Install additional Alpine packages (comma or space separated)
26+ --network NAME Join a dedicated podman network (created if missing) so
27+ Claude can reach other containers on it by name via DNS
2528 --podman-arg ARG Pass additional argument to podman
2629 --version Show the Claude Code version in the image
2730 --help Display this help message
@@ -49,6 +52,10 @@ while [[ $# -gt 0 ]]; do
4952 APK_PACKAGES=" $2 "
5053 shift 2
5154 ;;
55+ --network)
56+ NETWORK=" $2 "
57+ shift 2
58+ ;;
5259 --podman-arg)
5360 PODMAN_ARGS=" $PODMAN_ARGS $2 "
5461 shift 2
@@ -68,6 +75,15 @@ while [[ $# -gt 0 ]]; do
6875 esac
6976done
7077
78+ # Join a dedicated network, creating it if it doesn't exist yet
79+ NETWORK_ARG=" "
80+ if [ -n " $NETWORK " ]; then
81+ if ! podman network exists " $NETWORK " ; then
82+ podman network create " $NETWORK "
83+ fi
84+ NETWORK_ARG=" --network $NETWORK "
85+ fi
86+
7187podman run \
7288 -v " ${HOME} /.claude:/home/claude/.claude" \
7389 -v " ${HOME} /.claude.json:/home/claude/.claude.json" \
@@ -79,6 +95,7 @@ podman run \
7995 --detach \
8096 --user claude \
8197 --userns=keep-id:uid=1000,gid=1000 \
98+ $NETWORK_ARG \
8299 $PODMAN_ARGS \
83100 " $IMAGE " " $@ "
84101
0 commit comments