最近我开始使用Docker,我成功构建了一些图像,以运行使用OpenCV的python脚本。
现在,下一步,我想在Raspberry Pi3B +上部署这些映像,但是在Pi上构建它们失败。我还尝试过将在我的Ubuntu笔记本电脑上成功构建的映像推送到Pi,然后从映像中拉出映像以运行容器,但是它也不起作用。
我发现原因是我所做的一切都是试图在armv7拱门(我的Pi)上使用amd64拱门(我的笔记本电脑)图像,从而引起某种冲突。
然后我在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吗?谢谢,请允许我提供一些文档。
答案 0 :(得分:0)
基于https://www.piwheels.hostedpi.com/,它们支持python版本3.4、3.5和3.7。这是一个引号(强调是我的):
支持
车轮提供了对所有Raspberry Pi型号(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
可能会解决此问题。