Spaces:
Sleeping
Sleeping
| # 多阶段构建 Dockerfile,适用于 Hugging Face Spaces | |
| # 第一阶段:构建 Go 应用 | |
| FROM golang:1.23-alpine AS builder | |
| # 安装必要的工具 | |
| RUN apk add --no-cache git ca-certificates | |
| # 设置工作目录 | |
| WORKDIR /app | |
| # 复制 go mod 文件 | |
| COPY go.mod go.sum ./ | |
| # 下载依赖 | |
| RUN go mod download | |
| # 复制源代码 | |
| COPY . . | |
| # 构建 Go 应用(禁用 CGO) | |
| RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . | |
| # 第二阶段:运行时镜像 | |
| FROM alpine:latest | |
| # 安装 ca-certificates(用于 HTTPS) | |
| RUN apk --no-cache add ca-certificates tzdata | |
| # 设置时区 | |
| ENV TZ=Asia/Shanghai | |
| # 创建非 root 用户 | |
| RUN addgroup -g 1000 appgroup && adduser -u 1000 -G appgroup -s /bin/sh -D appuser | |
| # 设置工作目录 | |
| WORKDIR /app | |
| # 从构建阶段复制二进制文件 | |
| COPY --from=builder /app/main . | |
| # 切换到非 root 用户 | |
| USER appuser | |
| # 暴露端口(Hugging Face Spaces 默认端口) | |
| EXPOSE 7860 | |
| # 启动命令 | |
| CMD ["./main"] |