原来镜像打包过程中可以指定挂载缓存和编译结果路径

FROM golang:1.23.9-alpine3.21 AS builder

WORKDIR /app

COPY . /app/

ARG BUILD_VERSION

ENV BUILD_VERSION=${BUILD_VERSION:-develop} \
    GOPROXY=https://goproxy.cn,direct

RUN --mount=type=cache,target=/root/.cache/go-build \
    --mount=type=cache,target=/go \
    go mod download \
    && go build -o demo-web --ldflags="-X 'main.buildVersion=$BUILD_VERSION'" .

FROM alpine:3.20

# 解决 Go 时区加载 unknown time zone XXX 的问题
RUN apk update && apk add tzdata

COPY --from=builder /app/demo-web /usr/bin/demo-web

参考链接