如何在 docker 容器中安装 Google chrome

How to install Google chrome in a docker container

我正在尝试在 docker 容器中安装 chrome。我执行:

RUN apt-get install -y wget
RUN wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN dpkg -i google-chrome-stable_current_amd64.deb  # problem here
RUN apt -f install -y

问题是 dpkg -i 由于缺少依赖项而失败。原则上这不是一个大问题,因为下一个命令应该会解决这个问题,并且确实会在容器内 运行 交互 时执行此操作。但问题是,当 building 一个 docker 容器时,这个错误使构建过程停止:

dpkg: error processing package google-chrome-stable (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 google-chrome-stable
root@78b45ab9aa33:/# 
exit

我该如何克服这个问题?有没有更简单的方法来安装 chrome 而不会引起依赖性问题?我找不到要添加的存储库,所以我可以 运行 一个常规的 apg-get install google-chrome,这就是我想要做的。在 google linux repository 他们只是提到“包将自动配置必要的存储库设置”。这不是我得到的...

在@Facty 的评论和更多搜索之后,我找到了两个解决方案来安装 Google Chrome 而不会引发此错误。我将 post 放在下面以供将来参考或遇到相同问题的人使用。

实际上有两种方法在docker容器上安装Chrome:

如果您手动下载 deb 文件,您可以使用 apt-get 而不是 dpkg 安装它。这将自动安装依赖项,而无需稍后调用 apt -f install -y :

RUN apt-get install -y wget
RUN wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN apt-get install ./google-chrome-stable_current_amd64.deb

另一个解决方案是添加存储库(安装 gpg 密钥)并直接从中安装,跳过手动下载:

RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ 
    && echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list
RUN apt-get update && apt-get -y install google-chrome-stable