🔧 Move cargo-modules/get/cache/readme to compile fallback 🔧

These 4 tools have no GitHub release assets published at all, so leaving
them in the --disable-strategies compile main loop meant they'd silently
no-op via the `|| true` guard instead of actually installing. Moved to the
existing compile-fallback RUN block, which allows source compilation, so
they now actually build and install (native cross-build in this stage, no
QEMU emulation — same as the other compile-fallback tools).

- Dockerfile: removed cargo-modules/cargo-get/cargo-cache/cargo-readme from
  the main prebuilt-fetch loop, added them to the compile-fallback loop;
  updated the comment above the compile-fallback loop to explain both
  categories of "no prebuilt" tools now in that list.
This commit is contained in:
2026-08-21 21:31:03 -04:00
parent c4322445bc
commit 318d7ab236
+12 -9
View File
@@ -166,19 +166,18 @@ RUN --mount=type=cache,id=cargo-registry-native,sharing=shared,target=/usr/local
flamegraph \
probe-rs-tools \
sqlx-cli \
sea-orm-cli \
cargo-modules \
cargo-get \
cargo-cache \
cargo-readme; \
sea-orm-cli; \
do \
cargo binstall -y --disable-strategies compile --target "${RUST_TARGET}" "${tool}" || true; \
done
# A handful of tools ship no prebuilt for musl targets at all (verified via
# A handful of tools ship no prebuilt for musl targets at all — taplo-cli,
# cargo-public-api, cargo-spellcheck, cargo-dist, sea-orm-cli confirmed via
# `cargo binstall` "Fallback to cargo-install is disabled" on both amd64 and
# arm64 a 404 from every prebuilt source, not a rate-limit issue). For just
# these, allow the compile fallback: this stage already cross-links via the
# arm64 (a 404 from every prebuilt source, not a rate-limit issue);
# cargo-modules, cargo-get, cargo-cache, cargo-readme have no GitHub release
# assets published at all, same net effect. For just these, allow the
# compile fallback: this stage already cross-links via the
# zig wrapper scripts above, so compiling here is a native cross-build, not
# QEMU emulation, and stays fast for this small a tool set.
# openssl-libs-static is required alongside openssl-dev: Alpine's openssl-dev
@@ -196,7 +195,11 @@ RUN --mount=type=cache,id=cargo-registry-native,sharing=shared,target=/usr/local
cargo-public-api \
cargo-spellcheck \
cargo-dist \
sea-orm-cli; \
sea-orm-cli \
cargo-modules \
cargo-get \
cargo-cache \
cargo-readme; \
do \
cargo binstall -y --target "${RUST_TARGET}" "${tool}" || true; \
done