Dockerfile和安装->软件包'openjdk-8-jre-headless'没有候选安装

时间:2019-08-21 14:21:03

标签: java ubuntu docker-compose dockerfile

当我为作曲家构建Docker映像时,我正在尝试安装openjdk-8-jre vie DockerFile。但我遇到了此错误消息。

错误消息:

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给出错误。.

1 个答案:

答案 0 :(得分:0)

似乎您正在使用 FROM python:3.8 as base 并且正如@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