From b46921708c3a204fad4366e858fa56a9c47102a3 Mon Sep 17 00:00:00 2001 From: Naeel Date: Sat, 25 Apr 2026 15:18:01 +0300 Subject: [PATCH] feat: use naeel/go-builder-fast:v1 with prebuilt stdlib, deploy v0.8.13 --- console/deploy/console.yaml | 2 +- console/main.go | 2 +- go-builder/Dockerfile | 13 ++++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/console/deploy/console.yaml b/console/deploy/console.yaml index db73f4a..1aa0bae 100644 --- a/console/deploy/console.yaml +++ b/console/deploy/console.yaml @@ -46,7 +46,7 @@ spec: serviceAccountName: fission-console containers: - name: console - image: naeel/fission-console:v0.8.12 + image: naeel/fission-console:v0.8.13 ports: - containerPort: 8090 env: diff --git a/console/main.go b/console/main.go index be0f02b..9301469 100644 --- a/console/main.go +++ b/console/main.go @@ -122,7 +122,7 @@ type langEnvDef struct { var langEnvMap = map[string]langEnvDef{ "python": {Image: "ghcr.io/fission/python-env"}, "nodejs": {Image: "ghcr.io/fission/node-env"}, - "go": {Image: "ghcr.io/fission/go-env", BuilderImage: "ghcr.io/fission/go-builder"}, + "go": {Image: "ghcr.io/fission/go-env", BuilderImage: "naeel/go-builder-fast:v1"}, "php": {Image: "ghcr.io/fission/php-env"}, "ruby": {Image: "ghcr.io/fission/ruby-env"}, "perl": {Image: "ghcr.io/fission/perl-env", Version: 1}, diff --git a/go-builder/Dockerfile b/go-builder/Dockerfile index 35ddaae..f809c10 100644 --- a/go-builder/Dockerfile +++ b/go-builder/Dockerfile @@ -10,9 +10,16 @@ WORKDIR ${GOPATH} COPY --from=fission-builder /builder /builder -# Prebuild stdlib для -buildmode=plugin → бьём кэш в образе -# После этого go build -buildmode=plugin НЕ БУДЕТ перекомпилировать stdlib -RUN go install -buildmode=plugin std +# 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