diff --git a/Dockerfile.backend b/Dockerfile.backend index 1f0bfd5..08714dd 100644 --- a/Dockerfile.backend +++ b/Dockerfile.backend @@ -8,11 +8,16 @@ FROM ${GO_BUILDER_IMAGE} AS builder ARG GOPROXY ARG GOSUMDB +ARG ALPINE_MIRROR ENV GOPROXY=${GOPROXY} ENV GOSUMDB=${GOSUMDB} WORKDIR /app +# SQLite 驱动依赖 CGO,构建阶段需要 C 编译工具 / SQLite driver needs CGO and a C toolchain +RUN sed -i "s|https://dl-cdn.alpinelinux.org/alpine|${ALPINE_MIRROR}|g; s|http://dl-cdn.alpinelinux.org/alpine|${ALPINE_MIRROR}|g" /etc/apk/repositories \ + && apk --no-cache add build-base + # 复制 Go 依赖文件 / Copy Go dependency files COPY backend/go.mod backend/go.sum ./ RUN go mod download @@ -21,7 +26,7 @@ COPY backend ./backend WORKDIR /app/backend # 构建 Go 二进制文件 / Build Go binary -RUN CGO_ENABLED=0 GOOS=linux go build -o /server ./cmd/server +RUN CGO_ENABLED=1 GOOS=linux go build -ldflags="-linkmode external -extldflags '-static'" -o /server ./cmd/server # 最终运行镜像 / Runtime image FROM ${BACKEND_RUNTIME_IMAGE}