我正在尝试使用 DockerFile 安装 openjdk-8-jre,因为我要为我的组合器构建 Docker 镜像。但是我遇到了这个错误信息。
错误信息:
这里是来自 Dockerfile 的部分内容:
如果我直接从控制台安装Java,使用完全相同的命令但没有RUN,包没有问题。 但是,当我尝试从Dockerfile安装它时,就会遇到错误。 我已经了解到Docker使用与运行Docker的机器相同的存储库?Ubuntu的版本是16.04。
或者我如何在Dockerfile上检查可用的安装软件包?java-v会出现错误。
错误信息:
Package openjdk-8-jre-headless is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'openjdk-8-jre-headless' has no installation candidate
这里是来自 Dockerfile 的部分内容:
# Install openjdk and java cacerts
RUN apt-get update && apt-get install -y openjdk-8-jre-headless ca-certificates-java
如果我直接从控制台安装Java,使用完全相同的命令但没有RUN,包没有问题。 但是,当我尝试从Dockerfile安装它时,就会遇到错误。 我已经了解到Docker使用与运行Docker的机器相同的存储库?Ubuntu的版本是16.04。
或者我如何在Dockerfile上检查可用的安装软件包?java-v会出现错误。
/bin/sh -c 'apt-get update && apt-get install -y openjdk-8-jre-headless ca-certificates-java'
带引号,但即使它在实际运行时正确地表现为如果引号存在,Docker在打印错误消息时也会省略它们。 - Charles Duffydebian:buster
(-slim
)(以及基于它的镜像,例如python:3.7-slim
),这些镜像中没有openjdk-8-jre-headless
在apt
仓库中(遇到了这个问题,升级到了openjdk-11
)。参考在线软件包搜索。不,docker
使用你所构建的操作系统的仓库。 - masseyb