自定义镜像

最后更新于

依赖管理部分介绍的依赖安装会在「模型部署」启动时执行,为了加速服务的启动可以通过使用自定义镜像,在自定义镜像中预装所有的依赖。

准备 Dockerfile

首先,自定义镜像的目的是为了加速模型部署的启动速度,避免不必要的依赖安装。因此,所有的自定义镜像都必须在 OpenBayes Serving 提供的官方镜像基础上构建而来。

目前 OpenBayes 不同「模式」下的镜像如下:

name python device image source
onnx-predictor-cpu Python 3.6 CPU uhub.service.ucloud.cn/openbayesruntimes/onnx-predictor-cpu:master
onnx-predictor-gpu Python 3.6 CUDA 10.1 uhub.service.ucloud.cn/openbayesruntimes/onnx-predictor-gpu:master
python-predictor-cpu Python 3.6 CPU uhub.service.ucloud.cn/openbayesruntimes/python-predictor-cpu:master
python-predictor-gpu Python 3.6 CUDA 10.1 uhub.service.ucloud.cn/openbayesruntimes/python-predictor-gpu:master

以下是一个在 Python GPU 模式下准备依赖的例子:

FROM uhub.service.ucloud.cn/openbayesruntimes/python-predictor-gpu:master

RUN pip install --no-cache-dir opencv-python==4.2.0.34

可以看到,这个样例里为 python gpu 模式下预装了依赖:opencv-python

构建并将镜像推送到镜像仓库

构建镜像并将镜像推送到镜像仓库,这里我们以 ucloud 的镜像仓库为例:


docker login uhub.service.ucloud.cn
Username: 
Password:
# Login Succeeded

docker build . -t uhub.service.ucloud.cn/<your-registry>/<your-image-name>
docker push uhub.service.ucloud.cn/<your-registry>/<your-image-name>

创建模型部署时使用自定义镜像

在创建模型部署时,将以上构建的镜像填入到「自定义镜像」位置,部署时将使用所指定的镜像而不是官方默认镜像。