在未跨步骤共享的云构建步骤中安装 google-chrome(使用卷)

Installing google-chrome in cloud build step not shared across steps (using volumes)

我在安装可跨步骤共享的 google chrome 时遇到问题。我的 cloudbuild.yaml 看起来像这样:

- name: 'ubuntu'
  args: ['bash', 'tools/download-chrome.sh']
  volumes:
  - name: 'bin'
    path: '/usr/bin'
- name: 'gcr.io/cloud-builders/npm'
  args: ['run', 'install-all-ci']
- name: 'gcr.io/cloud-builders/npm'
  args: ['test']
  volumes:
  - name: 'bin'
    path: '/usr/bin'

其中第一步下载chrome,调用which google-chromereturns/usr/bin/google-chrome。在最后一步做同样的事情 returns 没什么。


我还尝试将音量添加到中间的步骤并向上移动该步骤(因为出于某种原因将它放在安装步骤中损坏 git。我认为 /usr/bin 不是卷被删除后可以分享的好目录吗?


尝试 3 正在做类似的事情:

apt-get download -y google-chrome-stable \
      --no-install-recommends \
    && dpkg -i --force-all --root=/workspace/chrome /workspace/google-chrome-stable*.deb \

但我收到以下错误:dpkg: error: unable to access dpkg status area: No such file or directory。我试过 mkdir /workspace/chrome 但这并没有解决问题。

我想知道 /usr/bin 目录是否已被 docker 图片使用,在这种情况下您可能无法覆盖它?

您可以探索的另一个解决方案是使用 npm 和 chrome 工具制作一个 docker 图像,这样您就不必在每次构建时都 download/install 它。

最好, 菲利普