ARG GO_VERSION=1.25 FROM ghcr.io/fission/builder AS fission-builder FROM golang:${GO_VERSION} ENV GOPATH=/usr ENV GO111MODULE=on ENV GOTOOLCHAIN=local WORKDIR ${GOPATH} COPY --from=fission-builder /builder /builder # Prebuild stdlib для -buildmode=plugin через dummy plugin. # Go компилирует всю stdlib с plugin-флагами и кладёт в /root/.cache/go-build. # Следующие сборки найдут кэш и пропустят stdlib → ~10-30 сек вместо 4 мин. RUN mkdir -p /tmp/prebuild && \ printf 'package main\n\nimport (\n\t"fmt"\n\t"net/http"\n)\n\nfunc Handler(w http.ResponseWriter, r *http.Request) {\n\tfmt.Fprintf(w, "ok")\n}\n' \ > /tmp/prebuild/main.go && \ cd /tmp/prebuild && \ go mod init prebuild && \ go build -buildmode=plugin -o /tmp/prebuild.so . && \ rm -rf /tmp/prebuild /tmp/prebuild.so ADD build.sh /usr/local/bin/build RUN chmod +x /usr/local/bin/build