Spaces:
Running
Running
# 这是一个临时的Dockerfile,用于在Hugging Face上部署占位符服务 | |
# TODO: 解决完整版本的依赖问题后替换此文件 | |
# 第一阶段:构建Go服务 | |
FROM golang:1.20-alpine AS go-builder | |
# 安装基本依赖 | |
RUN apk add --no-cache git build-base ca-certificates | |
# 设置工作目录 | |
WORKDIR /app | |
# 初始化go.mod | |
RUN go mod init tokenizer | |
# 预先下载依赖 | |
RUN go get github.com/google/generative-ai-go/[email protected] | |
RUN go get google.golang.org/[email protected] | |
RUN go get github.com/gin-gonic/[email protected] | |
RUN go get github.com/go-playground/validator/[email protected] | |
RUN go get github.com/gabriel-vasile/[email protected] | |
# 复制源代码 | |
COPY main.go . | |
# 确保依赖关系 | |
RUN go mod tidy | |
RUN go mod download | |
# 构建 | |
RUN CGO_ENABLED=0 GOOS=linux go build -o tokenizer -a -installsuffix cgo -ldflags="-w -s" . | |
# 第二阶段:构建Python环境 | |
FROM python:3.9-slim | |
# 安装基本依赖 | |
RUN apt-get update && apt-get install -y --no-install-recommends \ | |
ca-certificates \ | |
&& rm -rf /var/lib/apt/lists/* | |
# 设置工作目录 | |
WORKDIR /app | |
# 复制Go二进制文件 | |
COPY --from=go-builder /app/tokenizer . | |
# 复制Python服务文件和tokenizer文件 | |
COPY deepseek_v3_tokenizer /app/deepseek_v3_tokenizer | |
COPY openai_service.py /app/ | |
# 安装Python依赖 | |
RUN pip install --no-cache-dir flask transformers tiktoken | |
# 设置环境变量 | |
ENV GIN_MODE=release | |
ENV PORT=7860 | |
ENV DEEPSEEK_URL=http://127.0.0.1:7861 | |
ENV OPENAI_URL=http://127.0.0.1:7862 | |
# 创建启动脚本 | |
RUN echo '#!/bin/sh\n\ | |
python /app/deepseek_v3_tokenizer/deepseek_service.py & \n\ | |
python /app/openai_service.py & \n\ | |
sleep 5\n\ | |
./tokenizer' > /app/start.sh && chmod +x /app/start.sh | |
# 暴露端口 | |
EXPOSE 7860 7861 7862 | |
# 启动服务 | |
CMD ["/app/start.sh"] |