From 44fea49816c1033fcd7a0680da8f31d852e17e86 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 29 Mar 2026 14:20:18 -0700 Subject: [PATCH] docker: use alpine packages for Rust builder to fix linux/386 builds (#8837) The upstream rust:alpine manifest list no longer includes linux/386, breaking multi-platform builds. Switch the Rust volume server builder stage to alpine:3.23 and install Rust toolchain via apk instead. Also adds openssl-dev which is needed for the build. --- docker/Dockerfile.go_build | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile.go_build b/docker/Dockerfile.go_build index 3b8e120ed..94d0f1536 100644 --- a/docker/Dockerfile.go_build +++ b/docker/Dockerfile.go_build @@ -16,15 +16,16 @@ RUN cd /go/src/github.com/seaweedfs/seaweedfs/weed \ && export LDFLAGS="-X github.com/seaweedfs/seaweedfs/weed/util/version.COMMIT=$(git rev-parse --short HEAD)" \ && CGO_ENABLED=0 go install -tags "$TAGS" -ldflags "-extldflags -static ${LDFLAGS}" -# Rust volume server builder (amd64/arm64 only) -FROM rust:1-alpine as rust_builder +# Rust volume server builder. Alpine packages avoid depending on the +# upstream rust:alpine manifest list, which no longer includes linux/386. +FROM alpine:3.23 as rust_builder ARG TARGETARCH -RUN apk add musl-dev protobuf-dev git COPY --from=builder /go/src/github.com/seaweedfs/seaweedfs/seaweed-volume /build/seaweed-volume COPY --from=builder /go/src/github.com/seaweedfs/seaweedfs/proto /build/proto WORKDIR /build/seaweed-volume ARG TAGS RUN if [ "$TARGETARCH" = "amd64" ] || [ "$TARGETARCH" = "arm64" ]; then \ + apk add --no-cache musl-dev openssl-dev protobuf-dev git rust cargo; \ if [ "$TAGS" = "5BytesOffset" ]; then \ cargo build --release; \ else \