gpt4 book ai didi

java - Docker 镜像运行在 Intel mac 而不是 M1 mac

转载 作者:行者123 更新时间:2023-12-05 04:46:01 27 4
gpt4 key购买 nike

我们有一个在 Docker 容器中运行的 Java Spring Boot 应用程序。它基于 openjdk:13-jdk-alpine。我们将它部署到 Linux 机器上,但我们也能够在 Windows 机器和基于 Intel 的 iMac 上本地运行它。

不过,我们发现它无法在基于 ARM 的 MacBook Pro 上正常运行。我们得到的异常是基本的 Java 错误,例如“找不到符号 Java.class[]”,以及其他看起来像是 JVM 已关闭的错误。

有没有一种方法可以构建适用于所有这些平台(包括 M1 MacBook Pro)的 Docker 镜像?

最佳答案

我的 M1 macbook 上的 Java 容器也有很多问题。对于您的问题,也许您需要创建自己的 docker 镜像:

jetty 文件

FROM --platform=linux/arm64/v8 ubuntu:20.04

ARG DEBIAN_FRONTEND=noninteractive
EXPOSE 8080

RUN apt update \
&& apt upgrade -y \
&& apt install -y openjdk-13-jre git \
&& apt clean

RUN mkdir -pv /app && cd /app && \
git clone https://github.com/spring-guides/gs-spring-boot.git && \
cd /app/gs-spring-boot/initial && ./gradlew build

WORKDIR /app/gs-spring-boot/initial

ENTRYPOINT [ "./gradlew", "bootRun" ]

构建图像

docker build -t test .

运行容器

docker run --rm -p 8080:8080 test

在浏览器上访问 http://localhost:8080/,您的 Spring-Boot 应用程序在没有 Rosetta 2 的情况下运行。

免责声明:我不是 Java 开发人员,我的 Dockerfile 用于概念验证目的。

请记住,您的 Docker 镜像是针对 ARM64 架构构建的。如果您想在 Intel/AMD 处理器上运行此容器,则必须更改 Dockerfile 上的 FROM --platform=linux/amd64 ubuntu:20.04

关于java - Docker 镜像运行在 Intel mac 而不是 M1 mac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68975743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com