FROM golang:1.26.5-alpine AS builder WORKDIR /src ENV GOPROXY=https://goproxy.cn,direct \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 COPY pkg ./pkg COPY go.mod go.sum ./ RUN --mount=type=cache,target=/go/pkg/mod \ go mod download COPY bff/ ./bff/ WORKDIR /src/bff RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ go build -ldflags="-s -w" -o /out/main ./ FROM alpine:3.22 WORKDIR /app ENV TZ=Asia/Shanghai RUN apk add --no-cache tzdata \ && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone COPY --from=builder /out/main . COPY rpc/user/*.pb \ rpc/order/*.pb \ rpc/product/*.pb \ rpc/admin/*.pb \ rpc/lonelog/*.pb \ ./etc/ EXPOSE 10000 CMD ["./main", "-f", "etc/bff.yaml"]