Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docker-compose.full.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ services:
# --- Performance ---
- NODE_OPTIONS=--max-old-space-size=4096 # Node.js memory limit (MB)

# --- Claude Code auto-update ---
- CLAUDE_AUTO_UPDATE=true # Run `claude update` on every container start (set false to pin)

# --- User mapping (match your host UID/GID) ---
- PUID=1000
- PGID=1000
Expand Down
3 changes: 2 additions & 1 deletion docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@ services:
- ./data/claude:/home/claude/.claude
- ./workspace:/workspace
environment:
- TZ=UTC # Change to your timezone
- TZ=UTC # Change to your timezone
- CLAUDE_AUTO_UPDATE=true # Run `claude update` on every container start
13 changes: 13 additions & 0 deletions scripts/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,19 @@ if [ ! -f "$SENTINEL" ]; then
fi
fi

# ---------- Claude Code auto-update (every boot, best-effort) ----------
# The image bakes in whatever Claude Code was current at build time. To pick up
# new releases without rebuilding the image, run `claude update` on each boot.
# Set CLAUDE_AUTO_UPDATE=false to skip (e.g. air-gapped or pinned environments).
if [ "${CLAUDE_AUTO_UPDATE:-true}" = "true" ]; then
echo "[entrypoint] Checking for Claude Code updates..."
if runuser -u "$CLAUDE_USER" -- bash -lc 'claude update' 2>&1 | sed 's/^/[claude-update] /'; then
:
else
echo "[entrypoint] WARNING: claude update failed — continuing with installed version"
fi
fi

# ---------- Background: persist ~/.claude.json every 60s ----------
(while true; do
sleep 60
Expand Down