From 2c0624ac0143c750f1aee9cafbd1b7a12fc5d82a Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sun, 3 May 2026 09:56:38 +0100 Subject: [PATCH] fix(rokur): use deno binary release directly, not install-manual URL (#20) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #16. `https://deno.land/install-manual@v${DENO_VERSION}.sh` returns content that sh cannot parse: sh: syntax error: unexpected redirection curl: (23) Failure writing output to destination, passed 16375 returned 0 Replaced with the explicit binary release URL pattern from denoland/deno's GitHub releases. That path is the canonical, deterministic download surface — no shell parsing involved, no install-script redirection, and the URL pattern is stable across Deno releases. --- container-stack/rokur/Containerfile | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/container-stack/rokur/Containerfile b/container-stack/rokur/Containerfile index 5ec5979..858315a 100644 --- a/container-stack/rokur/Containerfile +++ b/container-stack/rokur/Containerfile @@ -10,9 +10,16 @@ FROM cgr.dev/chainguard/wolfi-base:latest AS build RUN apk add --no-cache curl unzip # Install Deno (pinned version for reproducibility). +# Using direct binary download from GitHub releases — the previous +# `deno.land/install-manual@vX.Y.Z.sh` URL doesn't return a parseable +# install script (sh hits "syntax error: unexpected redirection" when +# piping its content). ARG DENO_VERSION=2.2.8 -RUN curl -fsSL https://deno.land/install-manual@v${DENO_VERSION}.sh | sh \ - && mv /root/.deno/bin/deno /usr/local/bin/deno +RUN curl -fsSL "https://github.com/denoland/deno/releases/download/v${DENO_VERSION}/deno-x86_64-unknown-linux-gnu.zip" \ + -o /tmp/deno.zip \ + && unzip /tmp/deno.zip -d /usr/local/bin \ + && rm /tmp/deno.zip \ + && chmod +x /usr/local/bin/deno # Pre-cache dependencies by copying deno.json first. WORKDIR /build