FROM golang:1.25-alpine AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -o server ./cmd/api/main.go FROM golang:1.25-alpine AS dev ENV GOPROXY=https://goproxy.cn,direct ENV GOSUMDB=off WORKDIR /app COPY go.mod go.sum ./ RUN go mod download EXPOSE 8080 CMD ["go", "run", "./cmd/api/main.go"] FROM alpine:latest AS production WORKDIR /app COPY --from=builder /app/server . EXPOSE 8080 CMD ["./server"]