Недавно я начал работать с Docker, мне удалось создать несколько образов с целью запуска моего python сценария, который использует OpenCV.
Теперь для следующего шага я хочу развернуть эти образы на моем Raspberry Pi3B +, но мне не удалось собрать их на Pi. Я также попытался вставить изображение, которое я успешно собрал на своем ноутбуке с Ubuntu, затем go на Pi и вытянуть изображение для запуска контейнера из него, но оно тоже не сработало.
Я нашел причина в том, что все, что я делал, пыталось использовать образ арки amd64 (мой ноутбук) на арке armv7 (мой Pi), что вызывает некоторый конфликт.
Затем я попробовал некоторые базовые образы на 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? Было бы неплохо, если бы у меня был какой-то документ для подписки, спасибо.