docker - 构建多架构 Docker 镜像时如何设置架构?
问题描述
假设我有一个foo
为许多不同的拱门(例如,、等)构建foo-arm64
的foo-amd64
应用程序。我想制作非常小的 Docker 图像,如下所示:
FROM scratch
ARG ARCH
ADD foo-$ARCH /bin/foo
ENTRYPOINT [ "/bin/foo" ]
但是,当我构建图像时:
docker build -t foo:arm64 --platform linux/arm64 --build-arg ARCH=arm64 .
架构不正确:
docker inspect foo:arm64 | grep Arch
"Architecture": "amd64", # should be arm64??
图像拱门似乎总是来自主机。当与主机不同时,如何构建具有正确架构的 Docker 映像?官方 Docker 镜像是如何做到这一点的?
解决方案
使用docker buildx命令代替docker build -t命令。Docker build 仅创建具有相应平台的 docker 映像。
有关更多信息,请参阅文档:https ://www.docker.com/blog/multi-arch-images/
推荐阅读
- algorithm - Cracking The Coding Interview - 打印方程的所有正整数解
- javascript - Firebase 数据提供者 + 自定义数据提供者 - React 管理员
- r - 将已创建的变量分配给 R 中的新变量
- reactjs - 为什么复选框不检查?(反应)
- ios - Trello ios 应用程序深层链接不起作用
- r - 如果在 R 中的数据集的任何行中发生了某些事情,则创建一个虚拟对象
- javascript - 添加 onclick 函数以转到 url 代码
- javascript - 使用多个嵌套对象 Angular 初始化接口的更简单方法
- apache-kafka - kafka 标头,在消费者处
- r - R - Exclude rows from dataframe that don't contain certain values