安装
参考官方文档来获取PaddleX镜像:基于Docker获取PaddleX
根据官方文档拉取相应版本的镜像:cpu和gpu版本。
当您使用官方 Docker 镜像安装时,其中已经内置了 PaddlePaddle、PaddleX(包括wheel包和所有插件),并配置好了相应的CUDA环境,您获取 Docker 镜像并启动容器即可开始使用。
请注意,PaddleX 官方 Docker 镜像与飞桨框架官方 Docker 镜像不同,后者并没有预装 PaddleX。
拉取CPU版本镜像
shell
# 拉取cpu版本:PaddleX 官方 Docker 镜像预置了基础功能所需的全部依赖
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.1-paddlepaddle3.0.0-cpu
构建所需依赖镜像【OCR】
参考官方文档,选择性安装自己需要的依赖即可。
PaddleX 官方 Docker 镜像预置了基础功能所需的全部依赖;使用上文介绍的 pip install "...[base]" 的安装方式也将安装基础功能需要的所有依赖。如果您只专注于 PaddleX 的某一项功能,且希望保持安装的依赖的体积尽可能小,可以通过指定"依赖组"的方式,选择性地安装依赖:
shell
# 以仅安装 OCR 类基础功能为例
# 安装预编译的 wheel 包
pip install "paddlex[ocr]"
# 从源码安装
pip install -e ".[ocr]"
# 也可以同时指定多个依赖组
pip install -e ".[ocr,cv]"
方式一:编写DockerFile文件并使用docker build构建镜像
- 编写Dockerfile文件
Dockerfile
FROM ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.0.1-paddlepaddle3.0.0-cpu
# 安装serving
RUN paddlex --install serving
# 选择性地安装依赖,安装自己需要的即可
RUN pip install "paddlex[ocr]"
# 端口暴露
EXPOSE 8869
# 通过磁盘映射相关模型文件,改为在启动镜像时指定需要启动的服务。
# CMD ["/bin/bash","-c","paddlex --serve --pipeline OCR"]
- 构建镜像
shell
docker buildx build --load -t paddlex-ocr-cpu:3.0.1 .
方式二:直接运行容器并进入容器安装相关依赖后使用docker commit保存为新镜像
shell
# 使用 PaddleX 官方 Docker 镜像,创建一个名为 paddlex 的容器,并将当前工作目录映射到容器内的 /paddle 目录
docker run --name paddlex -v $PWD:/paddle --shm-size=8g --network=host -it ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/paddlex:paddlex3.1.2-paddlepaddle3.0.0-cpu /bin/bash
# 安装服务化
paddlex --install serving
# 安装所需依赖
pip install "paddlex[ocr]"
# 退出容器保存正在运行的容器为新的镜像
docker commit paddlex paddlex-ocr-cpu:3.0.1
编写docker-compose文件
我个人不喜欢写docker run一长串命令,喜欢搞个docker-compose文件来跑服务。
看个人喜好选择。
yaml
version: '3.7'
services:
paddlex-ocr:
image: paddlex-ocr-cpu:3.0.1
container_name: paddlex-ocr
ports:
- "8869:8869"
shm_size: 8g
restart: unless-stopped
# 指定需要启动的服务OCR ,端口自己定义就行,默认是8869
command: paddlex --serve --pipeline OCR --port 8869
然后就可以 运行容器调用服务啦~~~
shell
docker-compose up -d
