安装 chrome 版本为 docker 的驱动程序

Installing chrome driver with version docker

我有一个 docker 文件,它使用 alpine 基础映像设置 Chromium 浏览器和 Chromium 驱动程序。目前正在设置最新版本? 有没有办法在这里指定版本?

RUN apk update && apk add --no-cache bash \
    alsa-lib \
    at-spi2-atk \
    atk \
    cairo \
    cups-libs \
    dbus-libs \
    eudev-libs \
    expat \
    flac \
    gdk-pixbuf \
    glib \
    libgcc \
    libjpeg-turbo \
    libpng \
    libwebp \
    libx11 \
    libxcomposite \
    libxdamage \
    libxext \
    libxfixes \
    tzdata \
    libexif \
    udev \
    xvfb \
    zlib-dev \
    chromium \
    chromium-chromedriver

很遗憾,这是不可能的。理论上你可以使用

RUN apk update && apk add --no-cache bash \
    alsa-lib \
    at-spi2-atk \
    atk \
    cairo \
    cups-libs \
    dbus-libs \
    eudev-libs \
    expat \
    flac \
    gdk-pixbuf \
    glib \
    libgcc \
    libjpeg-turbo \
    libpng \
    libwebp \
    libx11 \
    libxcomposite \
    libxdamage \
    libxext \
    libxfixes \
    tzdata \
    libexif \
    udev \
    xvfb \
    zlib-dev \
    chromium=1.0.154.65 \
    chromium-chromedriver=1.0.154.65

但是失败了:

ERROR: unsatisfiable constraints:
  chromium-72.0.3626.121-r0:
    breaks: world[chromium=1.0.154.65]
  chromium-chromedriver-72.0.3626.121-r0:
    breaks: world[chromium-chromedriver=1.0.154.65]

原因是更新 alpine 时旧包被丢弃。因此,如果你想使用特定版本的铬,你必须查看 https://pkgs.alpinelinux.org/packages?name=chromium&branch=v3.7 并搜索包含你需要的铬版本的高山版本,然后你需要使用该版本的高山作为你的基础图像(对于例如 FROM alpine:3.7 如果你想要版本 61.0.3163.100-r0 中的铬)。另一种解决方案是创建一个自己的镜像。

如果您需要更多信息,我可以推荐 this blog post