如何在Amazon Linux 2的Dockerfile中通过amazon-linux-extras安装OpenJDK17?
解决Amazon Linux 2 Docker镜像中安装OpenJDK 17的问题
问题原因
Amazon Linux 2的amazon-linux-extras仓库并未收录java-openjdk17包,这是你执行安装命令时报错的核心原因。该仓库提供的Java版本以11及以下为主,17不在其支持列表内。
解决方案:安装Amazon Corretto 17(推荐)
Amazon Corretto是亚马逊官方维护的OpenJDK发行版,完全兼容OpenJDK,且在Amazon Linux 2上有完善的支持,适合Docker镜像场景:
- 在Dockerfile中添加以下命令来安装Corretto 17:
RUN rpm --import https://yum.corretto.aws/corretto.key \ && curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo \ && yum install -y java-17-amazon-corretto-devel \ && yum clean all
- 验证安装:
添加完上述命令后,可在镜像中执行java -version,输出应类似:
openjdk version "17.0.x" 20xx-xx-xx LTS OpenJDK Runtime Environment Corretto-17.0.x.xx (build 17.0.x+xx-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.x.xx (build 17.0.x+xx-LTS, mixed mode, sharing)
备选方案:手动下载OpenJDK 17二进制包
如果偏好使用原生OpenJDK而非Corretto,可通过手动下载tar包的方式安装:
RUN curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz \ && tar -xzf openjdk-17.0.2_linux-x64_bin.tar.gz -C /usr/local/ \ && rm openjdk-17.0.2_linux-x64_bin.tar.gz \ && ln -s /usr/local/jdk-17.0.2/bin/java /usr/bin/java \ && ln -s /usr/local/jdk-17.0.2/bin/javac /usr/bin/javac
注意:需根据OpenJDK官方最新版本调整下载链接。
内容的提问来源于stack exchange,提问作者Anisha Mathais
相关产品推荐
相关产品推荐

