# 构建阶段 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"]