# 构建阶段
FROM golang:1.24-alpine AS builder

RUN apk add --no-cache gcc musl-dev sqlite-dev

WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=1 go build -ldflags "-s -w" -o tonav-go .

# 运行阶段
FROM alpine:3.21

RUN apk add --no-cache sqlite-libs tzdata ca-certificates

WORKDIR /app

COPY --from=builder /app/tonav-go .
COPY --from=builder /app/templates/ ./templates/
COPY --from=builder /app/tonav-go-ctl.sh .

RUN chmod +x tonav-go tonav-go-ctl.sh && \
    mkdir -p backups

ENV TZ=Asia/Shanghai
ENV TONAV_PORT=9520
ENV TONAV_DB=/app/data/tonav.db
ENV TONAV_SECRET=change-me-in-production

EXPOSE 9520

VOLUME ["/app/data", "/app/backups"]

HEALTHCHECK --interval=30s --timeout=5s --start-period=5s \
    CMD wget -qO- http://localhost:9520/ || exit 1

CMD ["./tonav-go"]
