Spaces:
Sleeping
Sleeping
# 使用官方的 Golang 镜像进行构建 | |
FROM golang:1.22 AS builder | |
# 禁用 CGO | |
ENV CGO_ENABLED=0 | |
# 在容器中设置工作目录 | |
WORKDIR /app | |
# 复制 go.mod 和 go.sum 并下载依赖 | |
COPY go.mod go.sum ./ | |
RUN go mod download | |
# 复制源代码并构建应用 | |
COPY . . | |
# 静态编译 Go 应用程序,并将资源内嵌到二进制文件中 | |
RUN CGO_ENABLED=0 GOARCH=amd64 go build -o ddg-chat-go . | |
# 使用更小的 Alpine 镜像以减小最终镜像体积 | |
FROM alpine:latest | |
# 设置工作目录 | |
WORKDIR /app | |
# 从构建阶段复制编译好的单一二进制文件 | |
COPY --from=builder /app/ddg-chat-go . | |
# 设置环境变量 | |
ENV MAX_RETRY_COUNT="3" | |
ENV RETRY_DELAY="5000" | |
ENV PORT="7860" | |
# 暴露应用运行的端口 | |
EXPOSE 7860 | |
# 确保二进制文件可执行 | |
RUN chmod +x ddg-chat-go | |
# 启动程序 | |
CMD ["./ddg-chat-go"] | |