最近我开始使用Docker,我成功地构建了一些图像,用于运行使用OpenCV的python脚本。
现在,下一步,我想在我的Raspberry Pi3B+上部署这些图像,但我未能在Pi上构建它们。我也尝试过推送我在Ubuntu笔记本电脑上成功构建的图像,然后转到Pi,从中提取图像来运行容器,但也不起作用。
我发现原因是我所做的只是试图在armv7 arch(我的Pi(上使用amd64 arch(我家的笔记本电脑(图像,所以这会引起某种冲突。
然后,我在Docker Hub上尝试了一些为armv7创建的基本映像,例如:arm32v7/python:3.6,下面是我的Dockerfile:
FROM arm32v7/python:3.6
RUN apt-get -y update && apt-get -y upgrade
&& apt-get install -y python3-pip
python3-numpy
libblas-dev
liblapack-dev
python3-dev
libatlas-base-dev
gfortran
python3-setuptools
python3-scipy
&& apt-get -y update
&& apt-get -y install python3-h5py
libsm6
libxext6
libxrender-dev
RUN pip3 install scipy
cython
keras
opencv-python
scikit-image
COPY cut.py detect.py c9_0_04_46_23_0.jpg /opt/
COPY MODEL /opt/MODEL
RUN mkdir -p /opt/anh_cut
WORKDIR /opt/
ENTRYPOINT ["python3", "cut.py"]
OpenCV安装步骤出错:
找不到满足opencv-python 要求的版本
我还试图用:替换pip config
[global]
extra-index-url=https://www.piwheels.org/simple
它是arm体系结构的预编译包的存储库,但仍然出现了同样的问题。
我有办法解决这个问题吗?如果没有,我可以在笔记本电脑上交叉编译OpenCV,然后复制到Dockerfile吗?如果我能有一些文件可以参考,那就太好了,谢谢。
基于https://www.piwheels.hostedpi.com/,它们支持python 3.4、3.5和3.7版本。这里有一句话(重点是我的(:
支持
提供的轮子支持所有树莓派型号(Pi 4、Pi 3、Pi 2、Pi 1和Pi Zero(。Raspbian Jessie(Python 3.4(、Raspbian Stretch、Python 3.5和Raspbian Buster(Python 3.7(
保留修改后的pip配置,并通过以下方式更改Dockerfile中的FROM
子句:
FROM arm32v7/python:3.7-buster
可能会解决问题。