- 添加 Dockerfile (多阶段构建, alpine 运行时, 14MB 镜像) - 添加 docker-compose.yml - 添加 .dockerignore - README 添加 Docker 部署说明、二进制部署说明 - Docker 镜像: ouaone/tonav-go:v1.0.0
40 lines
820 B
Docker
40 lines
820 B
Docker
# 构建阶段
|
|
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"]
|