首页  

arm64机器上 构建 amd64 springboot应用镜像     所属分类 docker 浏览量 7
在 arm64 机器(M 系列 Mac、鲲鹏、AWS Graviton) 上,
指定使用 amd64 的 JDK 基础镜像,构建 amd64 服务器上运行的 SpringBoot 镜像,

arm64 机器上可以通过 Docker 平台模拟 / 跨平台构建,
强制指定 --platform linux/amd64,
让 Docker 拉取 amd64 架构的基础镜像,并打包出 纯 amd64 应用镜像。
这个镜像只能在 amd64 机器上跑,不能在当前 arm64 机器上跑。

docker build --platform linux/amd64 -t my-springboot:amd64 .

Dockerfile
# --platform linux/amd64  拉取 amd64 版本的 JDK  
FROM eclipse-temurin:17-jre

COPY target/*.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]

加了 --platform linux/amd64:
Docker 会自动拉 amd64 的基础镜像
构建出来的镜像就是 amd64 专用
放到 Intel/AMD 服务器上直接运行


docker inspect my-springboot:amd64 | grep Architecture
"Architecture": "amd64"



不在构建命令加 --platform,直接在 Dockerfile 里写死架构,也能实现 Dockerfile # 关键:这一行强制指定基础镜像为 amd64 FROM --platform=linux/amd64 eclipse-temurin:17-jre WORKDIR /app COPY target/*.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] docker build -t my-springboot:amd64 . 指定 amd64 架构的镜像 FROM eclipse-temurin:17-jre-amd64 绝大多数官方镜像都提供带架构后缀的版本: amd64 镜像:eclipse-temurin:17-jre-amd64 arm64 镜像:eclipse-temurin:17-jre-arm64v8 直接写死架构版本,Docker 就不会自动选择,只会拉指定的那个架构。
docker pull 指定镜像架构 # 官方推荐 Temurin 8 (amd64) docker pull --platform linux/amd64 docker.1ms.run/eclipse-temurin:8-jdk docker pull --platform linux/amd64 docker.1ms.run/eclipse-temurin:8-jre-alpine # 官方 openjdk8 (amd64) docker pull --platform linux/amd64 docker.1ms.run/openjdk:8-jre-slim

上一篇     下一篇
麦哲伦环球航行记录

MySQL ANY_VALUE 函数的作用

历史 地理 地缘政治 科技 文明 精选书单

docker.1ms.run 毫秒镜像

docker 多架构镜像拉取