feat(auth): support subscription login alongside API key

Make ANTHROPIC_API_KEY optional. Add CLAUDE_CODE_OAUTH_TOKEN pass-through
for headless token-based auth (claude setup-token). When neither is set,
Claude Code falls back to browser OAuth on port 54545. Add claude-config
named volume mounted at ~/.claude/ in both claude and webui services so
credentials persist across container runs. Pre-create ~/.claude/ in the
Dockerfile so the volume is initialised with correct ownership. Add
--service-ports to docker compose run calls to publish port 54545 during
CLI sessions.
This commit is contained in:
docker-claude 2026-04-14 22:47:04 +02:00
parent 88805a3c24
commit ba3730a24d
6 changed files with 90 additions and 19 deletions

View file

@ -18,8 +18,12 @@ RUN addgroup -g 1000 claude \
# Install Claude Code globally (runs as root for npm -g, then drops)
RUN npm install -g @anthropic-ai/claude-code
# Workspace directory owned by claude user
RUN mkdir -p /workspace && chown claude:claude /workspace
# Workspace and Claude config dir — both owned by claude user.
# Pre-creating ~/.claude ensures the named volume is initialised with the
# correct ownership when first mounted (Docker copies image content into
# an empty named volume on first use).
RUN mkdir -p /workspace /home/claude/.claude \
&& chown -R claude:claude /workspace /home/claude/.claude
USER claude
WORKDIR /workspace