# 第一阶段:构建 FROM golang:1.24-alpine AS builder WORKDIR /app RUN apk add --no-cache gcc musl-dev # 仅当需要 CGO 时才保留(你的代码可能不需要,但保留无害) COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o server ./cmd/server/main.go # 第二阶段:运行 FROM alpine:latest RUN addgroup -g 1001 -S app && adduser -u 1001 -S app -G app WORKDIR /app COPY --from=builder /app/server . COPY --from=builder /app/web ./web RUN chown -R app:app /app USER app EXPOSE 2779 ENV PORT=2779 CMD ["./server"]