Closed
Conversation
…n image Create docker/claude-code/Dockerfile based on node:22-slim with: - Claude Code CLI installed via npm - Common dev tools (git, curl, jq, openssh-client) - Non-root 'agent' user (UID 1000) matching DockerBackend defaults - /workspace working directory with safe.directory configured - claude entrypoint, no secrets baked in Add GitHub Actions workflow (.github/workflows/docker-claude-code.yml): - Triggers on Dockerfile changes, releases, and manual dispatch - Builds multi-platform images (linux/amd64, linux/arm64) - Pushes to ghcr.io/geoffjay/agentd-claude with latest, SHA, and semver tags - Uses buildx layer caching for fast rebuilds Add Makefile with docker-build-claude target and standard Rust targets. Add .dockerignore to keep build context minimal. Closes #286 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The node:22-slim base image already has a `node` user at UID 1000. Use groupmod/usermod to rename it to `agent` instead of groupadd/useradd which fails with exit code 4 (UID already exists). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace ENTRYPOINT with CMD to prevent `claude claude` invocation when DockerBackend sets cmd via create_container (blocking issue) - Remove unused `AS base` alias from single-stage build - Pin @anthropic-ai/claude-code version via build ARG for reproducibility - Remove redundant mkdir/chown after usermod --move-home - Add fmt-fix and docker-build-claude-multiarch to .PHONY in Makefile - Add comment noting arm64 verify gap in CI workflow Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #321 +/- ##
=======================================
Coverage 44.67% 44.67%
=======================================
Files 79 79
Lines 7199 7199
=======================================
Hits 3216 3216
Misses 3983 3983 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ENTRYPOINT ["claude"]withCMD ["claude"]to prevent DockerBackend'scmd: vec!["claude"]from combining intoclaude claude, which would cause the container to exit immediatelyAS basealias, redundantmkdir -p/chownafter--move-home, and add missing.PHONYtargets@anthropic-ai/claude-codeversion via a build ARG for reproducible SHA-tagged imagesTest plan
make docker-build-claudeand verifydocker run --rm agentd-claude:latest --versionworksdocker execinto it successfully (noclaude claudedouble-invocation)make fmt-fixandmake docker-build-claude-multiarchare recognized as phony targets🤖 Generated with Claude Code