java - 如何在 docker 文件中为 docker 映像提供参数,使其在 Apple M1 机器中仍然有效
问题描述
我以前可以下载 openjdk:8-jdk-slim 如下
docker run -it --name my-container openjdk:8-jdk-slim
移至 Apple M1 MacBook Pro 后,我必须按照https://docs.docker.com/docker-for-mac/apple-silicon/--platform linux/amd64
中所述使用此参数
docker run -it --platform linux/amd64 --name my-container openjdk:8-jdk-slim
但是对于 Dockerfile 我有
FROM openjdk:8-jdk-slim
// Other codes
如何向其中添加所需的参数,以便 Dockerfile 仍然可以在我的 Apple M1 MacBook Pro 上运行?
解决方案
您也可以在语句中添加--platform
选项:FROM
FROM --platform=linux/amd64 openjdk:8-jdk-slim
...
它在Dockefile 参考中提到:
如果引用多平台图像,可选
--platform
标志可用于指定图像的平台。FROM
例如,linux/amd64
、linux/arm64
或windows/amd64
。默认情况下,使用构建请求的目标平台。全局构建参数可用于此标志的值,例如自动平台 ARG 允许您将阶段强制为原生构建平台 (--platform=$BUILDPLATFORM
),并使用它交叉编译到阶段内的目标平台。
推荐阅读
- javascript - 打开并写入一个新窗口,但强制它是跨域的
- c# - 为什么我不能在 c# 中设置或更改其他窗体中的属性
- ruby-on-rails - 如何在测试环境中读取 Rails 开发数据库?
- r - R:如何从管道中的火花连接(sparklyr)中的数据列中提取元素
- python - PyQt问题将值发送到不同的类
- javascript - ajax后作弊预防
- php - Laravel 使用分页处理关系数据
- excel - VBScript用于根据空列值删除excel中的行
- c - 定义平方根的条件
- ubuntu - Phusion Passenger 独立 Meteor 教程因生成错误而失败