| # 第一阶段:编译 | |
| FROM golang:1.21-alpine AS builder | |
| # 设置工作目录 | |
| WORKDIR /app | |
| # 复制依赖文件并下载 | |
| COPY go.mod ./ | |
| # 如果你有 go.sum 文件,请取消下面一行的注释 | |
| # COPY go.sum ./ | |
| RUN go mod download | |
| # 复制源代码 | |
| COPY . . | |
| # 编译程序 (对应你的本地构建指令) | |
| # 这里的 -o main 表示输出文件名为 main | |
| RUN go build -o main ./cmd/notion2api | |
| # 第二阶段:运行 | |
| FROM alpine:latest | |
| WORKDIR /app | |
| # 从编译阶段复制二进制文件 | |
| COPY --from=builder /app/main . | |
| # 复制配置文件 (对应你的 --config .\config.example.json) | |
| COPY --from=builder /app/config.example.json ./config.json | |
| # Hugging Face Space 默认暴露 7860 端口 | |
| # 请确保你的程序读取 PORT 环境变量,或者在这里强制指定 | |
| ENV PORT=7860 | |
| # 运行程序 | |
| # 注意:你需要确认你的程序是否能通过命令行参数或环境变量读取配置 | |
| # 这里假设我们将 config.example.json 重命名为 config.json 使用 | |
| CMD ["./main", "--config", "config.json"] |