Slim down Dockerfile to aarch64-only pre-built binaries
cargo install was slow and required the Rust toolchain. All four
CLI tools now download from GitHub releases, and the multi-arch
case statements are gone since we only target aarch64.

Assisted-by: Claude Opus 4.6 via pi
change rmzuqnnrwmlmszxwxnskurmstrtyzwqy
commit bab04a68aee205ccbf0032265636dbbf57d603ec
author Alpha Chen <alpha@kejadlen.dev>
date
parent suplyvrz
diff --git a/assets/Dockerfile b/assets/Dockerfile
index d499662..2dab9c3 100644
--- a/assets/Dockerfile
+++ b/assets/Dockerfile
@@ -1,7 +1,5 @@
 FROM node:24-trixie-slim
 
-ARG TARGETARCH
-
 RUN apt-get update && apt-get install -y --no-install-recommends \
     build-essential \
     ca-certificates \
@@ -14,40 +12,18 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
     && rm -rf /var/lib/apt/lists/* \
     && ln -sf /usr/bin/fdfind /usr/bin/fd
 
-ARG DOTSLASH_VERSION=0.5.8
-RUN case "${TARGETARCH}" in \
-      amd64) DS_ARCH="x86_64" ;; \
-      arm64) DS_ARCH="aarch64" ;; \
-      *) echo "unsupported architecture: ${TARGETARCH}" && exit 1 ;; \
-    esac && \
-    curl -fsSL "https://github.com/facebook/dotslash/releases/download/v${DOTSLASH_VERSION}/dotslash-linux-musl.${DS_ARCH}.tar.gz" \
-      | tar xz -C /usr/local/bin dotslash
-
-ARG DIFFTASTIC_VERSION=0.68.0
-RUN case "${TARGETARCH}" in \
-      amd64) DFT_TARGET="x86_64-unknown-linux-musl" ;; \
-      arm64) DFT_TARGET="aarch64-unknown-linux-gnu" ;; \
-      *) echo "unsupported architecture: ${TARGETARCH}" && exit 1 ;; \
-    esac && \
-    curl -fsSL "https://github.com/Wilfred/difftastic/releases/download/${DIFFTASTIC_VERSION}/difft-${DFT_TARGET}.tar.gz" \
+RUN curl -fsSL "https://github.com/Wilfred/difftastic/releases/latest/download/difft-aarch64-unknown-linux-gnu.tar.gz" \
       | tar xz -C /usr/local/bin difft
 
-ARG JJ_VERSION=0.39.0
-RUN case "${TARGETARCH}" in \
-      amd64) JJ_ARCH="x86_64" ;; \
-      arm64) JJ_ARCH="aarch64" ;; \
-      *) echo "unsupported architecture: ${TARGETARCH}" && exit 1 ;; \
-    esac && \
-    curl -fsSL "https://github.com/jj-vcs/jj/releases/download/v${JJ_VERSION}/jj-v${JJ_VERSION}-${JJ_ARCH}-unknown-linux-musl.tar.gz" \
-      | tar xz --strip-components=0 -C /usr/local/bin ./jj
-
-RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --profile minimal
-ENV PATH="/root/.cargo/bin:${PATH}"
+RUN curl -fsSL "https://github.com/facebook/dotslash/releases/latest/download/dotslash-linux-musl.aarch64.tar.gz" \
+      | tar xz -C /usr/local/bin dotslash
 
-RUN cargo install --git https://github.com/kejadlen/ranger.git --locked
+RUN JJ_VERSION=$(curl -s https://api.github.com/repos/jj-vcs/jj/releases/latest | jq -r .tag_name) && \
+    curl -fsSL "https://github.com/jj-vcs/jj/releases/download/${JJ_VERSION}/jj-${JJ_VERSION}-aarch64-unknown-linux-musl.tar.gz" \
+      | tar xz --strip-components=0 -C /usr/local/bin ./jj
 
-RUN jj config set --user user.name "ramekin" && \
-    jj config set --user user.email "ramekin@example.com"
+RUN curl -fsSL "https://github.com/kejadlen/ranger/releases/latest/download/ranger-aarch64-unknown-linux-gnu.tar.gz" \
+      | tar xz -C /usr/local/bin ranger
 
 RUN npm install -g @mariozechner/pi-coding-agent