如何在没有 "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-slim
或 openjdk: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
应该可行的理由是:
- Firefox 在两个 Debian 软件包中都是可见的 (https://packages.debian.org/search?keywords=firefox) and the Ubuntu Packages (https://packages.ubuntu.com/search?keywords=firefox&searchon=names&suite=groovy§ion=all)
apt install firefox
在 Ubuntu 机器上工作(仅 CLI,不涉及 docker)
- 在 docker 文件中,将
firefox
替换为 wget
即可。这意味着 apt-get
正在按预期工作,并且某些内容与 firefox
. 特别不兼容
我试过使用以下基本图像:
openjdk:11-slim
- 我想要的基础图像,用于我正在处理的内容
openjdk:11
- 完整的事实上的 openjdk 镜像,应该是默认的工作案例
openjdk:11-buster
- 看看 Debian 10 是否可以工作
为什么 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
我正在尝试创建一个包含已安装的 Firefox 浏览器的 docker 图像,使用 openjdk:11-slim
或 openjdk: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
应该可行的理由是:
- Firefox 在两个 Debian 软件包中都是可见的 (https://packages.debian.org/search?keywords=firefox) and the Ubuntu Packages (https://packages.ubuntu.com/search?keywords=firefox&searchon=names&suite=groovy§ion=all)
apt install firefox
在 Ubuntu 机器上工作(仅 CLI,不涉及 docker)- 在 docker 文件中,将
firefox
替换为wget
即可。这意味着apt-get
正在按预期工作,并且某些内容与firefox
. 特别不兼容
我试过使用以下基本图像:
openjdk:11-slim
- 我想要的基础图像,用于我正在处理的内容openjdk:11
- 完整的事实上的 openjdk 镜像,应该是默认的工作案例openjdk:11-buster
- 看看 Debian 10 是否可以工作
为什么 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