在树莓派上运行 puckle/docker-airflow 镜像

时间:2021-01-02 08:27:45

标签: docker docker-compose raspberry-pi airflow

  1. 为什么有些 docker 镜像与 Raspberry Pi (linux/arm/v7) 等平台不兼容?
  2. 此外,您能否修改 Dockerfile 或其他配置文件以使其兼容?

感谢您的任何建议!


到目前为止,我已经 installed docker and docker-compose 然后遵循 puckel/docker-airflow readme,跳过可选构建,然后尝试通过以下方式运行容器:

docker run -d -p 8080:8080 puckel/docker-airflow webserver

收到此警告:

<块引用>

警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm/v7) 不匹配,并且未请求特定平台

找到this issue并运行:

docker run -d -p 8080:8080 --platform linux/arm/v7 puckel/docker-airflow:latest webserver

然后,这个错误:

<块引用>

docker: 来自守护进程的错误响应:找到具有参考 puckel/docker-airflow:latest 的图像但与指定平台不匹配:想要 linux/arm/v7,实际:linux/amd64。
请参阅“docker run --help”。

1 个答案:

答案 0 :(得分:3)

可执行文件,即二进制文件,取决于计算机的架构(amd64、arm...)。 Docker 的镜像包含二进制文件。也就是说,docker 镜像依赖于计算机架构。

因此,如果您查看 docker 的注册表,则指定了映像的操作系统和架构。参考你用的dockerhub/puckel/docker-airflowlinux/amd64你可以看到它只支持。换句话说,它不适用于 arm 架构。 如果你想运行这个 arm 架构,会有几种方法,但重点是一种。是用arm而不是amd64来构建源代码的结果作为docker镜像。


github.com/puckel/docker-airflow 中,详细说明了构建指南。

首先看github提供的Dockerfile,是从图片FROM python:3.7-slim-buster开始的。对于对应的python:3.7-slim-buster,支持linux/arm/v5linux/arm/v7linux/arm/v5linux/arm64/v8dockerhub/python/3.7-slim-buster

换句话说,你可以构建到 arm 架构

我有通过 docker buildx 命令为多个架构创建镜像的经验。当然还有其他方法,下面我只简单介绍一下命令。


dockerhub/buildx

  • docker buildx 是一项实验性功能,仍然推荐使用 Experimental features must not be used in production environments
docker buildx build --platform linux/arm/v5,linux/arm/v7 .
相关问题