问题描述
我正在尝试在运行 Ubuntu 20.04 LTS(64 位)的 Raspberry Pi 4 上构建基于 Alpine 的 NGINX Docker 映像。
由于我还有一个在 Raspbian(32 位)上运行的较旧的 Raspberry Py 3,我希望该映像是 32 位版本,这就是我在 Dockerfile 中指定 FROM arm32v7/alpine:3.13
的原因。
我通过调用通过 SDK 触发构建
stream = client.api.build(path=dockerfile_dir,dockerfile='Dockerfile-Lastbuild',tag=config['tag'],labels=config['labels'],platform='linux/arm/v7',# <- Ignored?
rm=True)
然后我收到警告
[警告] 请求的映像的平台 (linux/arm) 与检测到的主机平台 (linux/arm64/v8) 不匹配且未请求特定平台
我认为通过添加参数 platform='linux/arm/v7'
,如指定的 in the documentation:
platform (str) – 格式为 os[/arch[/variant]] 的平台。
,我会指示 Docker 我请求一个特定的平台。
当我只指定 FROM alpine:3.13
时,我收到相同的警告。
仅当我指定 FROM arm64v8/alpine:3.13
时,警告才会消失,但我假设生成的图像不再与 arm32v7
兼容,而这将是在 Raspberry Pi 3(32 位)上运行的要求.
我没有通过控制台手动尝试过,这是我接下来要做的事情,但是那个 platform
参数的目的究竟是什么?
我注意到,如果我删除 platform
参数,然后使用 FROM alpine:3.13
,警告就会消失。所以我假设这个参数只对默认情况下拉取 Alpine 图像的哪个变体有影响。
这并没有解释 and no specific platform was requested
的含义。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)