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
