FROM registry-vpc.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda11.8.0-py310-torch2.1.0-tf2.14.0-1.10.0
WORKDIR /mnt/workspace
COPY . .
RUN apt-get install git curl -y
RUN git clone -b v1.2.1 https://www.modelscope.cn/damo/nlp_deberta_rex-uninlu_chinese-base.git .cache/modelscope/damo/nlp_deberta_rex-uninlu_chinese-base
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
RUN pip install jsonlines==3.1.0 transformers==4.33.0 numpy==1.24.0
RUN pip install fastapi uvicorn[standard]
CMD ["uvicorn","server:app","--host", "0.0.0.0", "--port", "8189"]
Dockerfile如上面所示, 已经直接clone了模型文件, 启动时依旧会下载
根据您提供的Dockerfile,您已经直接克隆了模型文件。但是,当您启动容器时,它仍然会重新下载模型文件。这可能是由于以下原因:
您的Dockerfile中没有指定模型文件的存储位置。您需要将模型文件复制到正确的目录,以便在容器中使用。
您的Dockerfile中的RUN git clone
命令可能没有正确安装Git。您可以尝试使用apt-get install -y git
来安装Git。
您的Dockerfile中的RUN pip install
命令可能没有正确安装所需的依赖项。您可以尝试更新这些命令以包含所有必要的依赖项。
为了解决这些问题,您可以尝试修改您的Dockerfile,如下所示:
FROM registry-vpc.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda11.8.0-py310-torch2.1.0-tf2.14.0-1.10.0
WORKDIR /mnt/workspace
COPY . .
# 安装Git
RUN apt-get update && apt-get install -y git curl
# 克隆模型文件
RUN git clone -b v1.2.1 https://www.modelscope.cn/damo/nlp_deberta_rex-uninlu_chinese-base.git .cache/modelscope/damo/nlp_deberta_rex-uninlu_chinese-base
# 设置PyPI镜像源
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 安装依赖项
RUN pip install jsonlines==3.1.0 transformers==4.33.0 numpy==1.24.0 fastapi uvicorn[standard]
# 将模型文件复制到工作目录
COPY .cache/modelscope/damo/nlp_deberta_rex-uninlu_chinese-base/* .cache/modelscope/damo/nlp_deberta_rex-uninlu_chinese-base/
CMD ["uvicorn","server:app","--host", "0.0.0.0", "--port", "8189"]
这将确保模型文件被正确复制到工作目录,并且在启动容器时不会被重新下载。
这个问题可能是由于在Dockerfile中,模型文件的克隆命令没有正确执行导致的。你可以尝试以下方法解决这个问题:
确保你的网络连接正常,可以访问到 https://www.modelscope.cn/damo/nlp_deberta_rex-uninlu_chinese-base.git 这个地址。
检查你的Dockerfile中的 RUN git clone -b v1.2.1 https://www.modelscope.cn/damo/nlp_deberta_rex-uninlu_chinese-base.git .cache/modelscope/damo/nlp_deberta_rex-uninlu_chinese-base
这一行代码是否正确。确保分支名和仓库地址都是正确的。
如果上述方法都无法解决问题,你可以尝试在Dockerfile中使用 ADD
命令来添加模型文件,而不是使用 COPY
命令。例如:
FROM registry-vpc.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda11.8.0-py310-torch2.1.0-tf2.14.0-1.10.0
WORKDIR /mnt/workspace
RUN apt-get install git curl -y
RUN git clone -b v1.2.1 https://www.modelscope.cn/damo/nlp_deberta_rex-uninlu_chinese-base.git .cache/modelscope/damo/nlp_deberta_rex-uninlu_chinese-base
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
RUN pip install jsonlines==3.1.0 transformers==4.33.0 numpy==1.24.0
RUN pip install fastapi uvicorn[standard]
# 添加模型文件
ADD .cache/modelscope/damo/nlp_deberta_rex-uninlu_chinese-base/* .cache/modelscope/damo/nlp_deberta_rex-uninlu_chinese-base/
CMD ["uvicorn","server:app","--host", "0.0.0.0", "--port", "8189"]
这样,模型文件应该会被正确地添加到镜像中,启动时不会再重新下载。