Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Dockerfile&;安装->;包装';openjdk-8-jre-headless';没有安装候选者_Java_Ubuntu_Docker Compose_Dockerfile - Fatal编程技术网

Java Dockerfile&;安装->;包装';openjdk-8-jre-headless';没有安装候选者

Java Dockerfile&;安装->;包装';openjdk-8-jre-headless';没有安装候选者,java,ubuntu,docker-compose,dockerfile,Java,Ubuntu,Docker Compose,Dockerfile,我正在尝试安装openjdk-8-jre vie DockerFile,因为我正在为我的作曲家构建docker映像。但我发现了这个错误信息 错误消息: 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 fr

我正在尝试安装openjdk-8-jre vie DockerFile,因为我正在为我的作曲家构建docker映像。但我发现了这个错误信息

错误消息:

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,使用完全相同的命令而不运行,那么包就没有问题。但是当我尝试从Dockerfile安装它时,我遇到了错误。我知道Docker使用与Docker运行的机器相同的回购协议?Ubuntu是16.04版


或者如何检查Dockerfile上的可用安装包?java-v给出了一个错误。

似乎您正在使用python:3.8中的
作为基础
,正如@masseyb在您问题下的评论中提到的,它没有openjdk-8jre-headless包

这可能对你有帮助

FROM python:3.7-alpine as base
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash \
&& apk add --no-cache --virtual=build-dependencies unzip \
&& apk add --no-cache curl \
&& apk add --no-cache openjdk8-jre

RUN apk add --no-cache python3 \
&& python3 -m ensurepip \
&& pip3 install --upgrade pip setuptools \
&& rm -r /usr/lib/python*/ensurepip && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
rm -r /root/.cache

RUN pip install --trusted-host pypi.python.org flask

这个示例Dockerfile可以让您在完全相同的机器上使用Java python和flask

“工作正常”?请注意,如果这是一个Docker实例,那么它运行的发行版与外部主机不同(这就是重点!),因此包名&c。可能会有所不同。我们会知道你成功测试的Ubuntu的哪个特定版本,以及失败的Ubuntu的哪个特定版本,以便能够得出结论。(我强烈怀疑您正在运行Docker的部分原因是命令打印错误——要获得错误,该命令需要真正以带引号的方式运行,即
/bin/sh-c'apt get update&&apt get install-y openjdk-8-jre-headless ca certificates java'
,但即使它正确地运行时引号也在那里实际上正在运行,Docker在打印错误消息时忽略了它们)…您可以共享一个生成错误的Dockerfile吗?(可以将其缩减为a,删除生成所述错误所不需要的所有命令)。您从中构建的
?即
debian:buster(
-slim
)(和基于i.e.的图像)在
apt
repos中没有
openjdk-8-jre-headless
(点击那堵墙,升级到
openjdk-11
)参考.否,
docker
使用您正在从构建
的操作系统的repo。如何检查Dockerfile上的安装包?java-版本给出了有关java的错误。。