如何解决通过 Docker SDK for Python 构建 docker 容器时指定平台
我正在尝试在运行 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 举报,一经查实,本站将立刻删除。