# ---- 构建阶段 ----
FROM golang:1.26-alpine AS build
WORKDIR /src

# 先拉依赖，利用层缓存
COPY go.mod go.sum ./
RUN go mod download

COPY . .
# 静态链接，便于在 alpine 运行时直接运行
RUN CGO_ENABLED=0 GOOS=linux go build -o /out/server ./cmd/server

# ---- 运行阶段 ----
FROM alpine:3.20
RUN apk add --no-cache ca-certificates tzdata

WORKDIR /app
COPY --from=build /out/server /app/server
COPY configs ./configs

# 上传目录（容器外挂 volume）
RUN mkdir -p /app/uploads

ENV CONFIG_PATH=/app/configs/config.yml
EXPOSE 8090

CMD ["/app/server"]
