# 构建阶段
FROM golang:1.25.4-alpine3.22 AS builder
WORKDIR /app

COPY go.mod go.sum ./
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main ./cmd/api

# 运行阶段
FROM alpine:latest
WORKDIR /app

RUN apk add --no-cache ca-certificates tzdata
ENV TZ=Asia/Shanghai

COPY --from=builder /app/main .
COPY --from=builder /app/configs ./configs

# 数据目录（上传文件等），运行时挂载 volume
RUN mkdir -p data/contract/uploads data/contract/batch_archive data/ownership data/zsp-contract/files

EXPOSE 8080
ENTRYPOINT ["/app/main"]
