在基于 Debian 的 docker 镜像中安装 Java 运行时

Ste*_*fan 5 apt docker

我正在尝试在基于 Debian 的 docker 映像 (mcr.microsoft.com/dotnet/core/sdk:3.1-buster) 中安装 java 运行时。根据各种howtos,这应该可以通过运行

RUN apt update
RUN apt-get install openjdk-11-jre
Run Code Online (Sandbox Code Playgroud)

后一个命令返回

E: Unable to locate package openjdk-11-jre
Run Code Online (Sandbox Code Playgroud)

但是,根据https://packages.debian.org/buster/openjdk-11-jre,该软件包确实存在。我究竟做错了什么?

小智 14

不确定您从哪个图像中提取。我使用了苗条的Dockerfile

from debian:buster-slim

ENV DEBIAN_FRONTEND=noninteractive

RUN mkdir -p /usr/share/man/man1 /usr/share/man/man2

RUN apt-get update && \
apt-get install -y --no-install-recommends \
        openjdk-11-jre

# Prints installed java version, just for checking
RUN java --version
Run Code Online (Sandbox Code Playgroud)

注意:如果你不运行,mkdir -p /usr/share/man/man1 /usr/share/man/man2你会遇到 ca-certificates、openjdk-11-jre-headless 等的依赖问题。我一直在使用社区提供的这个修复程序,还没有真正检查永久修复程序。