Как создать Docker контейнер на Windows 10 P C для запуска на Raspberry Pi 4 - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь создать контейнер Docker для развертывания на Raspberry Pi4. Контейнер предназначен для запуска приложения Python. Я создаю контейнер на Windows 10 P C со следующим Dockerfile.

FROM python:3.6-stretch

RUN mkdir /app
WORKDIR /app
ADD . /app/
RUN pip install -r requirements.txt

EXPOSE 5000
CMD ["python", "/app/main.py"]

Как только я построю контейнер на Windows P C, я переместив его в Docker Hub, затем используя docker run на Raspberry Pi, чтобы вытащить образ и запустить его.

Я понимаю, что архитектуры разные, но у меня сложилось впечатление, что изображение python:3.6-stretch вытащил из Docker Концентратор был Multi-Arch и поэтому сделал бы работу. Однако, когда я пытаюсь запустить образ на Raspberry Pi, он завершается с ошибкой формата exe c, что указывает на неправильное изображение для архитектуры.

Что мне нужно изменить, чтобы собрать контейнер на Windows и запустить его на Raspberry Pi?

1 Ответ

2 голосов
/ 15 апреля 2020

Вы должны указать платформу. Либо в вашем Dockerfile, либо из командной строки.

FROM --platform=linux/arm/v7 python:3.6-stretch 

Возможно, вам придется использовать BuildKit или включить экспериментальные функции для вашего демона Docker, если вы хотите установить платформу из командной строки. :

DOCKER_BUILDKIT=1 docker build --platform=linux/arm/v7 .

Вам необходимо установить Qemu и docker / binfmt, чтобы иметь возможность создавать образы ARM на x86_64. Процесс установки описан здесь: https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux/

На Linux вы должны установить его самостоятельно. Из того, что я собрал , оно включено в Docker для Windows.

...