Spaces:
Sleeping
Sleeping
File size: 1,028 Bytes
cc3fa57 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # 多阶段构建 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"] |