forked from SlimeBoyOwO/LingChat
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile-predictor
More file actions
45 lines (33 loc) · 1.27 KB
/
Dockerfile-predictor
File metadata and controls
45 lines (33 loc) · 1.27 KB
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
# 这个 Dockerfile 用于构建独立的情绪分类预测服务
# 当项目作为服务端启动时,需要单独启动这个服务
# 在local启动时,相关逻辑直接使用 predictor.py 而不需要构建这个容器
# 服务默认监听 8000 端口,可以通过环境变量 EMOTION_MODEL_PATH 指定模型路径
# 使用多阶段构建来减小镜像大小
FROM python:3.12-slim as builder
# 安装构建依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# 创建工作目录
WORKDIR /app
# 复制依赖文件
COPY backend/requirements.txt .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 第二阶段:运行阶段
FROM python:3.12-slim
# 设置工作目录
WORKDIR /app
# 从构建阶段复制已安装的依赖
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin
# 复制应用代码和模型
COPY backend/predictor.py backend/predictor_server.py ./
COPY backend/emotion_model_12emo ./emotion_model_12emo/
# 设置环境变量
ENV PYTHONUNBUFFERED=1
ENV EMOTION_MODEL_PATH=/app/emotion_model_12emo
# 暴露端口
EXPOSE 8000
# 启动服务
CMD ["python", "predictor_server.py"]