|
|
|
|
|
|
|
|
|
|
|
|
|
|
FROM golang:1.20-alpine AS go-builder |
|
|
|
|
|
|
|
|
RUN apk add --no-cache git build-base ca-certificates |
|
|
|
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
|
|
|
RUN go mod init tokenizer |
|
|
|
|
|
|
|
|
RUN go get github.com/google/generative-ai-go/genai@v0.8.0 |
|
|
RUN go get google.golang.org/api@v0.152.0 |
|
|
RUN go get github.com/gin-gonic/gin@v1.9.1 |
|
|
RUN go get github.com/go-playground/validator/v10@v10.14.0 |
|
|
RUN go get github.com/gabriel-vasile/mimetype@v1.4.2 |
|
|
|
|
|
|
|
|
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" . |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
COPY --from=go-builder /app/tokenizer . |
|
|
|
|
|
|
|
|
COPY deepseek_v3_tokenizer /app/deepseek_v3_tokenizer |
|
|
COPY openai_service.py /app/ |
|
|
|
|
|
|
|
|
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"] |