fix: [nomad-step-4] S4-fix-6 — bake Claude CLI into agents Docker image (remove host bind-mount) (#984) #985
No reviewers
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#985
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-984"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #984
Changes
AI Review
Summary
This PR correctly removes the
${CLAUDE_BIN_DIR}bind-mount from all three agent services in the staticdocker-compose.ymland bakes the Claude CLI into the Docker image vianpm install -g @anthropic-ai/claude-code@2.1.84. The Dockerfile changes are correct:nodejs/npmare installed before the npm command, and the global install placesclaudeat/usr/local/bin/claudewhere the agents expect it.Blocker
blocking
lib/generators.sh:140:_generate_local_model_services()still emits${CLAUDE_BIN_DIR}:/usr/local/bin/claude:ro(no default) for generatedagents-${service_name}services. These use the samedocker/agents/Dockerfilethat this PR updates. Thedisinto initflow (lines 638–658) resolvesCLAUDE_BIN_DIRand writes it to.env, falling back to/usr/local/bin/claudewhenclaudeis not found in PATH. If the host has no claude binary,CLAUDE_BIN_DIR=/usr/local/bin/claudeis written — a non-existent host path that causes Docker bind-mount to fail at startup. This is the exact same bug being fixed in the static file, but it persists in the hired-agent generated path.Fix: Remove the
${CLAUDE_BIN_DIR}:/usr/local/bin/claude:roline from the heredoc at line 140. Then update or remove theCLAUDE_BIN_DIRresolution block at lines 638–658 (only needed if other services still require it —reproduceandedgehave defaults,chatat line 573 does not).Confirm done:
grep -n 'CLAUDE_BIN_DIR' lib/generators.sh— the line 140 mount should be gone and line 639 comment updated.Notes
lib/generators.sh:385: The generatedagentsservice (using the pre-builtghcr.io/disinto/agentsimage) also still has the bind-mount at line 385. Whether this is intentional (pre-built image may not bake Claude CLI) should be confirmed.lib/generators.sh:573: Thechatservice generator at line 573 also retains the bind-mount. This is likely a separate concern since it uses a different image.lib/generators.sh:639: The commentdocker-compose.yml references ${CLAUDE_BIN_DIR} so the value must be setis stale after the static file change — update it regardless of what happens with line 140.Verdict
REQUEST_CHANGES — lib/generators.sh still emits the CLAUDE_BIN_DIR bind-mount for hired-agent services (docker/agents/Dockerfile), same bug as the static file fix
Reviewed at
4a3c8e1| AGENTS.mdAI Review: REQUEST_CHANGES — lib/generators.sh still emits the CLAUDE_BIN_DIR bind-mount for hired-agent services (docker/agents/Dockerfile), same bug as the static file fix
AI Re-review (round 2)
Previous Findings
lib/generators.sh:140— CLAUDE_BIN_DIR bind-mount in _generate_local_model_services() heredoc → FIXED: line removed in incremental difflib/generators.sh:385— generatedagentsservice bind-mount (pre-built image) → FIXED: line removed in incremental difflib/generators.sh:639— stale comment "docker-compose.yml references ${CLAUDE_BIN_DIR}" → FIXED: updated to "Only used by reproduce and edge services which still use host-mounted CLI"lib/generators.sh:573— chat service bind-mount, noted as separate concern → unchanged, expected: chat uses a different image; out of scope for this PRNotes
nodejs,npm, and@anthropic-ai/claude-code@2.1.84.Verdict
APPROVE — blocker closed, fix is correct and complete for the stated scope.
Verdict
APPROVE — Prior blocker fixed: CLAUDE_BIN_DIR bind-mount removed from _generate_local_model_services(); info notes addressed; chat service retention was pre-scoped as separate
Reviewed at
deda192| Previous:4a3c8e1| AGENTS.mdAI Re-review (round 2): APPROVE — Prior blocker fixed: CLAUDE_BIN_DIR bind-mount removed from _generate_local_model_services(); info notes addressed; chat service retention was pre-scoped as separate