build(Dockerfile): 添加多平台构建支持并禁用CGO

添加TARGETOS、TARGETARCH和TARGETVARIANT构建参数以支持多平台构建
设置CGO_ENABLED=0以静态编译
优化构建命令以支持不同架构变体
This commit is contained in:
zhouyonggao 2025-12-02 16:52:24 +08:00
parent 396346db8b
commit 22e9d09c39
1 changed files with 5 additions and 2 deletions

View File

@ -1,10 +1,13 @@
FROM golang:1.21-alpine AS build FROM golang:1.21-alpine AS build
ARG TARGETOS=linux
ARG TARGETARCH=amd64
ARG TARGETVARIANT=""
ENV CGO_ENABLED=0
WORKDIR /app WORKDIR /app
RUN --mount=type=cache,target=/var/cache/apk apk add build-base
COPY server/ ./server/ COPY server/ ./server/
COPY web/ ./web/ COPY web/ ./web/
WORKDIR /app/server WORKDIR /app/server
RUN go build -o /app/bin/marketing-data-server ./cmd/server RUN GOOS=$TARGETOS GOARCH=$TARGETARCH GOARM=$(echo $TARGETVARIANT | sed 's/^v//') go build -o /app/bin/marketing-data-server ./cmd/server
FROM alpine:3.19 FROM alpine:3.19
WORKDIR /app WORKDIR /app