我正在尝试构建一个容器,需要安装 java8。所有说明都在 Dockerfile 中。系统是 16.04.07 LTS。错误显示它正在尝试下载焦点版本,我只是不明白为什么
core@acme:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.7 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.7 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
core@acme:~$
core@acme:~$
core@acme:~$
core@acme:~$ docker-compose build
Building mongo...
Step 1/1 : FROM mongo:3.0.5
---> 960ec09b9ab6
Successfully built 960ec09b9ab6
Successfully tagged core_mongo:latest
Building voting...
Step 1/16 : FROM ubuntu
---> bb0eaf4eee00
Step 2/16 : RUN apt-get update
---> Using cache
---> 87abb253f7cf
Step 3/16 : RUN apt-get install -y software-properties-common
---> Using cache
---> 4b747dbd6cc8
Step 4/16 : RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && add-apt-repository -y ppa:webupd8team/java && apt-get update && apt-get install -y oracle-java8-installer && rm -rf /var/cache/oracle-jdk8-installer
---> Running in 1dcc67a9c18a
Ign:1 http://ppa.launchpad.net/webupd8team/java/ubuntu focal InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease
Err:6 http://ppa.launchpad.net/webupd8team/java/ubuntu focal Release
404 Not Found [IP: 91.189.95.83 80]
Reading package lists...
E: The repository 'http://ppa.launchpad.net/webupd8team/java/ubuntu focal Release' does not have a Release file.
Service 'alpha' failed to build: The command '/bin/sh -c echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && add-apt-repository -y ppa:webupd8team/java && apt-get update && apt-get install -y oracle-java8-installer && rm -rf /var/cache/oracle-jdk8-installer' returned a non-zero code: 100
core@acme:~$
答案1
您的操作系统docker
与主机系统不同,/etc/os-release
主机上的文件并不重要。
事情是这样的:
Step 1/16 : FROM ubuntu
如果您未在 Dockerfile 中指定软件包的版本,它将从 docker hub加载latest
版本 ( )。并且ubuntu:latest
那里, 你可以阅读:
该
ubuntu:latest
标签指向“最新 LTS”,因为这是推荐用于一般用途的版本。
因此,目前是这样的focal
。
要指定版本,您可以更改DOCKERFILE
从
FROM ubuntu
例如
FROM ubuntu:bionic
然而,你必须找到不同的来源java
,PPA 描述说:
Oracle Java 下载现在需要登录 Oracle 帐户才能下载 Java 更新,例如最新的 Oracle Java 8u211 / Java SE 8u212。因此,我无法使用最新的 Java 更新 PPA(旧链接已被 Oracle 破坏)。
为此原因,此 PPA 已停止。