fix(docker): disable cargo HTTP/2 multiplexing for arm64 builds

GitHub's arm64 Docker builders intermittently hit "[16] Error in the
HTTP2 framing layer" during cargo-chef's sparse-index fetches, panicking
the cook step (recipe.rs:224) and failing the v0.9.9 arm64 release build.

Set CARGO_HTTP_MULTIPLEXING=false + CARGO_NET_RETRY=5 in the chef stage,
inherited by planner and builder. Multiplexing-off is the canonical
workaround for transient crates.io HTTP/2 framing errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
whit3rabbit
2026-06-14 18:35:13 -05:00
co-authored by Claude Opus 4.8
parent 138aaa65ac
commit e46ab81273
+4
View File
@@ -11,6 +11,10 @@ RUN npm run build
# ── Stage 2: install cargo-chef ───────────────────────────────────────────────
FROM rust:1-alpine AS chef
RUN apk add --no-cache musl-dev openssl-dev openssl-libs-static
# GitHub's arm64 Docker builders have hit transient crates.io HTTP/2 framing
# errors during sparse-index fetches. Disable multiplexing and allow retries.
ENV CARGO_HTTP_MULTIPLEXING=false \
CARGO_NET_RETRY=5
RUN cargo install cargo-chef --locked
WORKDIR /app