如何在 Docker 容器中安装 Google Chrome

Ont*_*nio 54 google-chrome repository apt-get docker

我正在尝试在 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
Run Code Online (Sandbox Code Playgroud)

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

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

我怎样才能克服这个问题?有没有一种更简单的方法来安装 chrome 而不会引发依赖问题?我找不到要添加的存储库,因此我可以运行常规的apg-get install google-chrome,这就是我想做的。在google linux 存储库中,他们只是提到“软件包将自动配置必要的存储库设置”。这不完全是我得到的......

Ont*_*nio 68

经过 @Facty 的评论和更多搜索后,我找到了两种安装 Google Chrome 且不会引发此错误的解决方案。我会将其发布在下面,以供将来参考或遇到相同问题的人。

在 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 -y ./google-chrome-stable_current_amd64.deb
Run Code Online (Sandbox Code Playgroud)

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

RUN apt-get install -y wget
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
Run Code Online (Sandbox Code Playgroud)

  • @YaserSakkaf 将“ENV DEBIAN_FRONTEND noninteractive”添加到 Dockerfile 中。 (5认同)
  • 他们俩都陷入了“选择地理区域:”,要求输入数字。有什么想法如何处理? (2认同)

小智 16

这是 Node 版本(基于 debian)Dockerfile 的示例

FROM node:16.16.0 as base
# Chrome dependency Instalation
RUN apt-get update && apt-get install -y \
    fonts-liberation \
    libasound2 \
    libatk-bridge2.0-0 \
    libatk1.0-0 \
    libatspi2.0-0 \
    libcups2 \
    libdbus-1-3 \
    libdrm2 \
    libgbm1 \
    libgtk-3-0 \
#    libgtk-4-1 \
    libnspr4 \
    libnss3 \
    libwayland-client0 \
    libxcomposite1 \
    libxdamage1 \
    libxfixes3 \
    libxkbcommon0 \
    libxrandr2 \
    xdg-utils \
    libu2f-udev \
    libvulkan1
 # Chrome instalation 
RUN curl -LO  https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN apt-get install -y ./google-chrome-stable_current_amd64.deb
RUN rm google-chrome-stable_current_amd64.deb
# Check chrome version
RUN echo "Chrome: " && google-chrome --version
Run Code Online (Sandbox Code Playgroud)