|
16 | 16 | # ═════════════════════════════════════════════════════════════════════════════ |
17 | 17 |
|
18 | 18 | # ── rtk (token-optimized CLI proxy) ────────────────────────────────────── |
| 19 | +# Version pinned and kept up to date by Renovate (see .github/renovate.json5). |
19 | 20 | FROM alpine:3.21 AS rtk-download |
20 | | -RUN apk add --no-cache curl jq |
| 21 | +RUN apk add --no-cache curl |
| 22 | +# renovate: datasource=github-releases depName=rtk-ai/rtk |
| 23 | +ARG RTK_VERSION=0.43.0 |
21 | 24 | RUN set -eux; \ |
22 | 25 | ARCH="$(uname -m)"; \ |
23 | 26 | case "$ARCH" in \ |
24 | 27 | x86_64) RTK_TARGET="x86_64-unknown-linux-musl" ;; \ |
25 | 28 | aarch64) RTK_TARGET="aarch64-unknown-linux-gnu" ;; \ |
26 | 29 | esac; \ |
27 | | - RTK_VERSION=$(curl -fsSL https://api.github.com/repos/rtk-ai/rtk/releases/latest \ |
28 | | - | jq -r '.tag_name' | sed 's/^v//'); \ |
29 | 30 | curl -fsSL -o /tmp/rtk.tar.gz \ |
30 | 31 | "https://github.com/rtk-ai/rtk/releases/download/v${RTK_VERSION}/rtk-${RTK_TARGET}.tar.gz"; \ |
31 | 32 | tar -xzf /tmp/rtk.tar.gz -C /usr/local/bin rtk |
32 | 33 |
|
33 | 34 | # ── ralphex (autonomous plan execution) ────────────────────────────────── |
| 35 | +# Version pinned and kept up to date by Renovate (see .github/renovate.json5). |
34 | 36 | FROM alpine:3.21 AS ralphex-download |
35 | | -RUN apk add --no-cache curl jq |
| 37 | +RUN apk add --no-cache curl |
| 38 | +# renovate: datasource=github-releases depName=umputun/ralphex |
| 39 | +ARG RALPHEX_VERSION=1.6.0 |
36 | 40 | RUN set -eux; \ |
37 | 41 | ARCH="$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')"; \ |
38 | | - RALPHEX_VERSION=$(curl -fsSL https://api.github.com/repos/umputun/ralphex/releases/latest \ |
39 | | - | jq -r '.tag_name' | sed 's/^v//'); \ |
40 | 42 | curl -fsSL -o /tmp/ralphex.tar.gz \ |
41 | 43 | "https://github.com/umputun/ralphex/releases/download/v${RALPHEX_VERSION}/ralphex_${RALPHEX_VERSION}_linux_${ARCH}.tar.gz"; \ |
42 | 44 | tar -xzf /tmp/ralphex.tar.gz -C /usr/local/bin ralphex |
@@ -141,7 +143,7 @@ ENV MISE_TRUSTED_CONFIG_PATHS="/workspace" |
141 | 143 | # ── Dev tools (copied from parallel download stages) ───────────────────────── |
142 | 144 | # rtk (token-optimized CLI proxy) and ralphex (autonomous plan execution). |
143 | 145 | # Like Claude Code itself, these are dev infrastructure — not project dependencies. |
144 | | -# Downloaded from GitHub Releases; refreshed on each daily image rebuild. |
| 146 | +# Downloaded from GitHub Releases at Renovate-pinned versions (see .github/renovate.json5). |
145 | 147 | COPY --from=rtk-download /usr/local/bin/rtk /usr/local/bin/rtk |
146 | 148 | COPY --from=ralphex-download /usr/local/bin/ralphex /usr/local/bin/ralphex |
147 | 149 |
|
@@ -175,12 +177,15 @@ USER node |
175 | 177 | # npm is deprecated for interactive users but still supported "for compatibility |
176 | 178 | # reasons" — Docker/CI parallel builds are exactly that reason. |
177 | 179 | # See: https://code.claude.com/docs/en/getting-started#install-with-npm |
178 | | -# Auto-updates don't matter here — the image rebuilds daily. |
| 180 | +# Version pinned and kept up to date by Renovate (see .github/renovate.json5); |
| 181 | +# a bump PR triggers a rebuild. |
179 | 182 | # |
180 | 183 | # Install as the node user so all files land with node ownership from the start. |
181 | 184 | # A later `chown -R` in another layer would duplicate every file (overlayfs |
182 | 185 | # treats an ownership change as a rewrite), adding hundreds of MB. |
183 | | -RUN npm install -g @anthropic-ai/claude-code |
| 186 | +# renovate: datasource=npm depName=@anthropic-ai/claude-code |
| 187 | +ARG CLAUDE_CODE_VERSION=2.1.216 |
| 188 | +RUN npm install -g @anthropic-ai/claude-code@${CLAUDE_CODE_VERSION} |
184 | 189 |
|
185 | 190 | # ─── DEFAULT — full dev environment ─────────────────────────────────────────── |
186 | 191 | FROM base AS default |
@@ -222,7 +227,9 @@ ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 \ |
222 | 227 | # agent-browser: headless browser automation for AI agents. |
223 | 228 | # Uses the apt-installed chromium above (via AGENT_BROWSER_EXECUTABLE_PATH). |
224 | 229 | # Installed as the node user (see claude-code install above for rationale). |
225 | | -ARG AGENT_BROWSER_VERSION=latest |
| 230 | +# Version pinned and kept up to date by Renovate (see .github/renovate.json5). |
| 231 | +# renovate: datasource=npm depName=agent-browser |
| 232 | +ARG AGENT_BROWSER_VERSION=0.32.3 |
226 | 233 | RUN npm install -g agent-browser@${AGENT_BROWSER_VERSION} |
227 | 234 |
|
228 | 235 | LABEL org.opencontainers.image.source="https://github.com/gatezh/devcontainers" \ |
|
0 commit comments