1.脚本准备
1.项目目录
2.编写Dockfile
# 使用本地已经加载的 python:3.8 镜像
FROM python:3.8
# 设置工作目录
WORKDIR /app
# 复制当前目录下的内容到容器的工作目录下
COPY . /app
# 安装Python依赖
RUN pip install --no-cache-dir -r requirements.txt
# 暴露服务端口
EXPOSE 8000
# 运行命令:启动服务器或脚本
#CMD ["python", "serve_model.py"]
#只启动容器,不默认运行程序
CMD ["sleep", "infinity"]
3. requirement.txt
transformers
torch
flask
2.构建命令
1.创建镜像
docker build -t qwen0.5b:v1 .
2.启动容器同时将本地模型路径挂载进去
两种容器启动方式:
后台模式:容器在后台运行,终端可继续运行其他操作(本次采用这种)
docker run -d -v D:/Qwen2-0.5b:/app qwen0.5b:v1
交互模式:提供一个可与容器进行交互的界面
docker run -it -v D:/Qwen2-0.5b:/app qwen0.5b:v1
3.进入容器查看
docker exec -it 容器名称 bash
进入容器之后发现app文件夹下没有serve_model.py文件,这是由于我把目录挂载到了app文件夹下,和原有的目录重复了,因此被覆盖掉了。但可以通过在宿主机路径下手动添加该文件,同时容器中也会对应添加
运行serve_model.py报错:
OSError: Incorrect path_or_model_id: '/model/'. Please provide either the path to a local folder or the repo_id of a model on the Hub.
修改serve_model.py中的路径名称,这里由于我已将本地路径D:/Qwen2-0.5b挂载到容器中的app文件夹下,所以我直接在本地修改代码即可,再次运行,成功!