# 用于 Hugging Face Space 部署的alists主Dockerfile | |
FROM golang:1.21-alpine AS build | |
WORKDIR /build | |
# 复制 go.mod 和 go.sum 以利用 Docker 缓存 | |
COPY go.mod go.sum ./ | |
RUN apk add --no-cache git && go mod download | |
# 复制剩余源码并编译 | |
COPY . . | |
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /app/alist main.go | |
# 生产阶段 | |
FROM alpine:3.19 | |
WORKDIR /app | |
# 拷贝可执行文件和入口脚本 | |
COPY --from=build /app/alist /app/alist | |
COPY entrypoint.sh /app/entrypoint.sh | |
# 可选:拷贝必要的静态资源等,如果需要可用以下行 | |
# COPY public /app/public | |
# COPY config /app/config | |
# 必须赋予启动脚本可执行 | |
RUN chmod +x /app/entrypoint.sh | |
# 端口,Hugging Face Space 默认探测 | |
EXPOSE 7860 | |
# HEALTHCHECK:确保平台探测健康,默认 get /ping (alist部分版本支持)可按需调整 | |
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 CMD wget -qO- http://localhost:7860/ping || exit 1 | |
# 入口 | |
ENTRYPOINT ["/app/entrypoint.sh"] |