如何在没有 "no installation candidate" 错误的情况下在 openjdk:11 docker 基本映像上 apt-get 安装 firefox?

How to apt-get install firefox on an openjdk:11 docker base image without "no installation candidate" error?

我正在尝试创建一个包含已安装的 Firefox 浏览器的 docker 图像,使用 openjdk:11-slimopenjdk:11 作为我的基本图像。

这是我的 docker 文件的最小可复制示例:

FROM openjdk:11

RUN rm -rf /var/lib/apt/lists/* && \
    apt-get update && apt-get install -y --no-install-recommends firefox

这是 运行 docker build . 的输出:

$ docker build -t testing/simpleopenjdkfirefox .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM openjdk:11
 ---> 1eec9f9fe101
Step 2/2 : RUN rm -rf /var/lib/apt/lists/* &&     apt-get update && apt-get install -y --no-install-recommends firefox
 ---> Running in da4e93ffe4a1
Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:2 http://deb.debian.org/debian buster InRelease [121 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [268 kB]
Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [7860 B]
Fetched 8422 kB in 2s (4114 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Package firefox 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 'firefox' has no installation candidate
The command '/bin/sh -c rm -rf /var/lib/apt/lists/* &&     apt-get update && apt-get install -y --no-install-recommends firefox' returned a non-zero code: 100

我相信 运行 apt-get install firefox 应该可行的理由是:

我试过使用以下基本图像:

为什么 apt-get 安装在 docker 构建中失败,但在 Ubuntu CLI 中却没有? Linux OS 兼容性问题还是其他问题?

firefox 软件包仅在 Debian Unstable Repository(代号“Sid”)下可用。 Debian 稳定版只有 firefox-esr。要在包索引更新中包含 Sid 存储库,您必须添加 deb http://deb.debian.org/debian/ unstable main contrib non-free 作为 apt 的存储库源。

echo "deb http://deb.debian.org/debian/ unstable main contrib non-free" >> /etc/apt/sources.list.d/debian.list
apt-get update
apt-get install -y --no-install-recommends firefox

如果 Sid 存储库没有最新版本的 Firefox,下一个最好的检查地点是 Mozilla 团队自己运营的 Firefox PPA(个人软件包存档)。 PPA 只是存储库,添加方式与上面的 Sid 存储库完全相同:

例如,

sudo add-apt-repository ppa:mozillateam/firefox-next
sudo apt-get update