Docker:如何在 Debian jessie-slim 之上安装 OpenJDK JRE 12?

Sas*_*ota 3 java debian docker debian-jessie

我正在尝试在debian:jessie-slim图像顶部安装 OpenJDK JRE 12 。

最后,我需要安装openjdk-12-jre-headless包。但是,我得到:

E: 'openjdk-12-jre-headless' 的值对 APT::Default-Release 无效,因为源中没有这样的版本

我尝试了不同的选择,但看起来我做错了什么。

我的 Dockerfile非常复杂,但是这个问题是可以重现的:

FROM debian:jessie-slim
RUN apt-get install -y --target-release openjdk-12-jre-headless
Run Code Online (Sandbox Code Playgroud)

mic*_*alk 6

好的,我设法在您提供给定 Dockerfile 的图像上安装了这个 jre 发行版:

FROM debian:jessie-slim
RUN apt-get update && \
 apt-get -y upgrade && \
 echo 'deb http://ftp.de.debian.org/debian sid main' >> '/etc/apt/sources.list' && \
 apt-get -y update && \
 mkdir -p /usr/share/man/man1 && \
 apt-get -y install openjdk-12-jre-headless

Run Code Online (Sandbox Code Playgroud)

我不得不从这里添加存储库到/etc/apt/sources.list文件。这是用于 amd64 jre 发行版,因此如果您想要不同的发行版,只需检查此页面的底部并为您想要的版本添加镜像,就像我在 Dockerfile 中所做的那样。另外,/usr/share/man/man1由于这个错误,我不得不创建文件夹。

最后,我使用此图像运行容器并检查 java 版本:

openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment (build 12.0.1+12-Debian-1)
OpenJDK 64-Bit Server VM (build 12.0.1+12-Debian-1, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)

  • `mkdir -p /usr/share/man/man1` 是帮助我摆脱困境的秘密意外成分。 (5认同)