# 需在项目根目录构建: docker build -f server/Dockerfile .
# 使用 vendor 构建，无需在构建时访问 proxy.golang.org（服务器无外网时也能 build）
# 国内服务器可设 REGISTRY_MIRROR 拉取镜像，例: docker.m.daocloud.io/library/
ARG REGISTRY_MIRROR=
FROM ${REGISTRY_MIRROR}golang:1.21-alpine AS builder
WORKDIR /build
COPY server/ ./
# 构建参数：脚本可传 GOPROXY，避免 proxy.golang.org 超时；有 vendor 时主要用 -mod=vendor 离线构建
ARG GOPROXY=https://goproxy.cn,direct
ENV GOPROXY=$GOPROXY
RUN CGO_ENABLED=0 go build -mod=vendor -o /app/server .

ARG REGISTRY_MIRROR=
FROM ${REGISTRY_MIRROR}alpine:3.19
WORKDIR /app
RUN apk add --no-cache ca-certificates tzdata
ENV TZ=Asia/Shanghai
COPY --from=builder /app/server .
EXPOSE 9527
ENTRYPOINT ["./server"]
