首页 > 解决方案 > 如何在 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 上运行?

标签: javamacosdockerdockerfileapple-m1

解决方案


您也可以在语句中添加--platform选项:FROM

FROM --platform=linux/amd64 openjdk:8-jdk-slim
...

它在Dockefile 参考中提到:

如果引用多平台图像,可选--platform标志可用于指定图像的平台。FROM例如,linux/amd64linux/arm64windows/amd64。默认情况下,使用构建请求的目标平台。全局构建参数可用于此标志的值,例如自动平台 ARG 允许您将阶段强制为原生构建平台 ( --platform=$BUILDPLATFORM),并使用它交叉编译到阶段内的目标平台。


推荐阅读