From 4a3c8e16db7928365a3bd94060996b280ee12dd7 Mon Sep 17 00:00:00 2001 From: dev-qwen2 Date: Sat, 18 Apr 2026 05:34:46 +0000 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20[nomad-step-4]=20S4-fix-6=20?= =?UTF-8?q?=E2=80=94=20bake=20Claude=20CLI=20into=20agents=20Docker=20imag?= =?UTF-8?q?e=20(remove=20host=20bind-mount)=20(#984)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 3 --- docker/agents/Dockerfile | 7 ++++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ba8c77c..c4676f2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,6 @@ services: - project-repos:/home/agent/repos - ${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared}:${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared} - ${CLAUDE_CONFIG_FILE:-${HOME}/.claude.json}:/home/agent/.claude.json:ro - - ${CLAUDE_BIN_DIR}:/usr/local/bin/claude:ro - ${AGENT_SSH_DIR:-${HOME}/.ssh}:/home/agent/.ssh:ro - ${SOPS_AGE_DIR:-${HOME}/.config/sops/age}:/home/agent/.config/sops/age:ro - woodpecker-data:/woodpecker-data:ro @@ -78,7 +77,6 @@ services: - project-repos:/home/agent/repos - ${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared}:${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared} - ${CLAUDE_CONFIG_FILE:-${HOME}/.claude.json}:/home/agent/.claude.json:ro - - ${CLAUDE_BIN_DIR}:/usr/local/bin/claude:ro - ${AGENT_SSH_DIR:-${HOME}/.ssh}:/home/agent/.ssh:ro - ${SOPS_AGE_DIR:-${HOME}/.config/sops/age}:/home/agent/.config/sops/age:ro - woodpecker-data:/woodpecker-data:ro @@ -139,7 +137,6 @@ services: - project-repos:/home/agent/repos - ${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared}:${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared} - ${CLAUDE_CONFIG_FILE:-${HOME}/.claude.json}:/home/agent/.claude.json:ro - - ${CLAUDE_BIN_DIR}:/usr/local/bin/claude:ro - ${AGENT_SSH_DIR:-${HOME}/.ssh}:/home/agent/.ssh:ro - ${SOPS_AGE_DIR:-${HOME}/.config/sops/age}:/home/agent/.config/sops/age:ro - woodpecker-data:/woodpecker-data:ro diff --git a/docker/agents/Dockerfile b/docker/agents/Dockerfile index b9a110c..fa3b2d8 100644 --- a/docker/agents/Dockerfile +++ b/docker/agents/Dockerfile @@ -1,7 +1,7 @@ FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends \ - bash curl git jq tmux python3 python3-pip openssh-client ca-certificates age shellcheck procps gosu \ + bash curl git jq tmux nodejs npm python3 python3-pip openssh-client ca-certificates age shellcheck procps gosu \ && pip3 install --break-system-packages networkx tomlkit \ && rm -rf /var/lib/apt/lists/* @@ -18,8 +18,9 @@ ARG TEA_VERSION=0.9.2 RUN curl -fsSL "https://dl.gitea.com/tea/${TEA_VERSION}/tea-${TEA_VERSION}-linux-amd64" \ -o /usr/local/bin/tea && chmod +x /usr/local/bin/tea -# Claude CLI is mounted from the host via docker-compose volume. -# No internet access to cli.anthropic.com required at build time. +# Install Claude Code CLI — agent runtime for all LLM backends (llama, Claude API). +# The CLI is the execution environment; ANTHROPIC_BASE_URL selects the model provider. +RUN npm install -g @anthropic-ai/claude-code@2.1.84 # Non-root user RUN useradd -m -u 1000 -s /bin/bash agent -- 2.49.1 From deda192d604d5afd66a247273d3604f5c067ae5a Mon Sep 17 00:00:00 2001 From: dev-qwen2 Date: Sat, 18 Apr 2026 05:44:35 +0000 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20[nomad-step-4]=20S4-fix-6=20?= =?UTF-8?q?=E2=80=94=20bake=20Claude=20CLI=20into=20agents=20Docker=20imag?= =?UTF-8?q?e=20(remove=20host=20bind-mount)=20(#984)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/generators.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/generators.sh b/lib/generators.sh index 9ec8444..5664b55 100644 --- a/lib/generators.sh +++ b/lib/generators.sh @@ -137,7 +137,6 @@ _generate_local_model_services() { - project-repos-${service_name}:/home/agent/repos - \${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared}:\${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared} - \${CLAUDE_CONFIG_FILE:-\${HOME}/.claude.json}:/home/agent/.claude.json:ro - - \${CLAUDE_BIN_DIR}:/usr/local/bin/claude:ro - \${AGENT_SSH_DIR:-\${HOME}/.ssh}:/home/agent/.ssh:ro - ./projects:/home/agent/disinto/projects:ro - ./.env:/home/agent/disinto/.env:ro @@ -382,7 +381,6 @@ services: - project-repos:/home/agent/repos - ${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared}:${CLAUDE_SHARED_DIR:-/var/lib/disinto/claude-shared} - ${CLAUDE_CONFIG_FILE:-${HOME}/.claude.json}:/home/agent/.claude.json:ro - - ${CLAUDE_BIN_DIR}:/usr/local/bin/claude:ro - ${AGENT_SSH_DIR:-${HOME}/.ssh}:/home/agent/.ssh:ro - ${SOPS_AGE_DIR:-${HOME}/.config/sops/age}:/home/agent/.config/sops/age:ro - woodpecker-data:/woodpecker-data:ro @@ -636,13 +634,13 @@ COMPOSEEOF _generate_local_model_services "$compose_file" # Resolve the Claude CLI binary path and persist as CLAUDE_BIN_DIR in .env. - # docker-compose.yml references ${CLAUDE_BIN_DIR} so the value must be set. + # Only used by reproduce and edge services which still use host-mounted CLI. local claude_bin claude_bin="$(command -v claude 2>/dev/null || true)" if [ -n "$claude_bin" ]; then claude_bin="$(readlink -f "$claude_bin")" else - echo "Warning: claude CLI not found in PATH — set CLAUDE_BIN_DIR in .env manually" >&2 + echo "Warning: claude CLI not found in PATH — reproduce/edge services will fail to start" >&2 claude_bin="/usr/local/bin/claude" fi # Persist CLAUDE_BIN_DIR into .env so docker-compose can resolve it. -- 2.49.1