我正在尝试创建一个Docker容器来部署到树莓Pi4上。容器将运行Python应用程序。我使用以下Dockerfile在Windows10PC上构建容器。
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上构建了容器,我就将它推送到Docker Hub,然后在Raspberry Pi上使用docker run来拉取图像并运行它。
我知道架构是不同的,但我的印象是,从Docker Hub中拉出的python:3.6-stretch镜像是多拱形的,因此可以完成这项工作。但是,当我尝试在Raspberry Pi上运行该镜像时,它失败了,并显示了一个'exec format error‘,这表明该镜像对于该架构是不正确的。
为了在Windows上构建容器并在Raspberry Pi上运行它,我需要进行哪些更改?
发布于 2020-04-15 18:06:59
您必须指定平台。在您的Dockerfile中,或从命令行。
FROM --platform=linux/arm/v7 python:3.6-stretch 如果您希望能够从命令行设置平台,则可能需要使用BuildKit或为Docker守护进程启用实验功能:
DOCKER_BUILDKIT=1 docker build --platform=linux/arm/v7 .您需要安装Qemu和docker/binfmt才能在x86_64上构建ARM镜像。安装过程如下所示:https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux/
在Linux上,您必须自己安装它。来自what I've gathered,它包含在Docker for Windows中。
https://stackoverflow.com/questions/61225467
复制相似问题