Commit graph

11 commits

Author SHA1 Message Date
docker-claude
b76d1e5e2a chore(docker): pin Claude Code install to stable release channel
Some checks failed
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Failing after 58s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 22:40:01 +02:00
docker-claude
e78a302cb9 feat: remove webui
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 5m15s
2026-04-15 21:59:08 +02:00
docker-claude
1b141b200c use new native install 2026-04-15 19:18:39 +02:00
docker-claude
1c01d49f51 feat(claude): install kubectl into container image 2026-04-15 08:47:32 +02:00
docker-claude
e19d4eb0a3 feat(mcp): add GitHub, GitLab, Jira, and Confluence MCP servers
Install four MCP servers globally in the claude image:
  @modelcontextprotocol/server-github  → mcp-server-github
  @yoda.digital/gitlab-mcp-server      → gitlab-mcp-server
  @aashari/mcp-server-atlassian-jira   → mcp-atlassian-jira
  @aashari/mcp-server-atlassian-confluence → mcp-atlassian-confluence

Wire them in managed-settings.json via mcpServers with env var
pass-through. Jira and Confluence share ATLASSIAN_* credentials.
Add api.github.com, .gitlab.com, .atlassian.net to the squid
allowlist. All credentials are optional — servers are skipped
if the relevant env vars are unset.
2026-04-14 23:09:42 +02:00
docker-claude
c65ed15653 refactor(policy): rename managed-settings.json to settings.json 2026-04-14 22:59:25 +02:00
docker-claude
3adc97d901 feat(policy): restrict available models to sonnet, opus, haiku
Add /etc/claude-code/managed-settings.json with availableModels set to
the three Anthropic model families. The file is root-owned inside the
container so the node user cannot modify it. Managed settings cannot be
bypassed via --model flag, /model command, or ANTHROPIC_MODEL env var.
2026-04-14 22:55:02 +02:00
docker-claude
1c489f8636 refactor(claude): use built-in node user instead of custom claude user
Drop the addgroup/adduser layer entirely. node:20-alpine already ships
a node user at uid/gid 1000. Update chown and USER directives, and
update the claude-config volume mount path to /home/node/.claude.
2026-04-14 22:50:59 +02:00
docker-claude
0800e4a084 fix(claude): use gid/uid 1001 for claude user
node:20-alpine reserves gid/uid 1000 for its built-in node user,
causing addgroup to fail. Shift claude to 1001.
2026-04-14 22:49:42 +02:00
docker-claude
ba3730a24d 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.
2026-04-14 22:47:04 +02:00
docker-claude
88805a3c24 refactor(docker): migrate both images to Alpine
Replace node:20-slim/ubuntu:22.04 with node:20-alpine/alpine:3.21.
Switch package management from apt to apk (--no-cache, no cleanup layer).
Use Alpine addgroup/adduser in claude/Dockerfile. Update proxy to use
squid user (Alpine convention) and /var/cache/squid cache path.
Fix proxy/Dockerfile COPY path now that context is proxy/. Move
webui-entrypoint.sh into claude/ to match its build context. Fix
docker-compose.yml webui context to claude/, update proxy tmpfs path.
2026-04-14 22:40:57 +02:00
Renamed from Dockerfile.claude (Browse further)