如何制作一个mediapipe的镜像

由于国内环境的问题,在python中的一些高级库国内镜像是不全的,下载比较容易出问题,故需要找第三方库去解决。

准备

  1. 媒体管道 ·皮皮 (pypi.org)
  2. python环境镜像。
https://hub.docker.com/_/python

安装步骤

  1. 从皮皮中搜索对应版本的 mediapipe ,我这里演示,使用的是 mediapipe 0.10.0

  2. 拉到底部下载对应系统版本的 whl 文件,我这里使用的是红框标记的版本。

  3. 分析下载的文件名称 mediapipe-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    这个文件的命名遵循 PEP 425 规范,包含很多信息:

- mediapipe-0.10.0:表示这个文件是 mediapipe 版本 0.10.0 的 wheel 文件
- cp39:表示适用于 CPython 3.9
- cp39:重复一遍,也表示 CPython 3.9
- manylinux_2_17_x86_64:表示这个 wheel 文件在 CentOS 7 (manylinux2014) 平台的 x86_64 架构下构建
- manylinux2014_x86_64:同上,重复一遍
- .whl:表示这是一个 Python Wheel 文件

所以总结起来,我们知道这个 Wheel 文件需要 Python 3.9 版本,在 Linux x86_64 架构的系统上使用。

  1. 去镜像网站选取合适镜像
    经过实验和查询资料发现Alpine Linux - mediapipe wheel文件不支持 Alpine 系列(slim也不支持,因为也是基于alpine)。
    这里选择 python:3.9-buster镜像

  2. 制作镜像,dockerfile中的脚本需要自行编写,这里是将 mediapipe 服务以 websocket 的方式提供给的外部使用。

FROM python:3.9-buster

COPY mediapipe-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl .

RUN pip install mediapipe-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

# 安装依赖
RUN apt-get update && apt-get install -y \
    libgl1-mesa-dev \
    libsm6 \
    libxext6 \
    libxrender-dev

# 安装 OpenCV
RUN pip uninstall opencv-python && pip install opencv-python

# 安装服务
RUN pip install websockets

# 复制脚本
COPY poseServer.py .

# 运行脚本
CMD ["python", "poseServer.py"]

总结

总体来说采用这种方式安装可以避免很多依赖的问题,也不需要魔法就可以构建最合适自己的镜像。

参考

https://blog.csdn.net/weixin_44353800/article/details/129027739
https://hub.docker.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值