首页 > 解决方案 > 为什么 CircleCI 变体在组合时似乎不起作用?无法让 Firefox Geckodriver 工作

问题描述

使用 Ruby2.4.02.4.1,我无法让 CircleCI 识别语言图像变体,除了-browsers,例如声明的变体-browsers-legacyetc 说 manifest ... not found。

https://circleci.com/docs/2.0/circleci-images/#ruby

因此,我似乎无法解决 Firefox 测试未在 CircleCI 中启动 Firefox 的问题。如果我基于我的 Circle 配置图像ruby-2.6.2-browsers但在本地我无法安装 Ruby 版本2.6.2,因为我的 rbenv 说没有找到定义2.6.2

然而,当2.4.1在 CircleCI 中使用时,我得到Net::ReadTimeout了 Firefox 没有响应(但 Chrome 有)。

当我将 CircleCI 切换为基于2.6.2-browsersFirefox 和 Chrome 的图像时,工作正常。

所以目前我必须让我的本地 Ruby 成为2.4.0(在我的 Gemnfile 中),因为当我尝试rbenv install 2.6.2(对于在 CircleCI 中工作的版本)它说找不到图像定义

有没有办法让我的本地环境和 CircleCI 环境使用相同版本的 Ruby ?

现在我必须有

在试图解决这个问题时,我也遇到过

我没有在此处详细列出这些以解决问题,而是表明这些环境现在有点脆弱,多个发行者会影响哪些工作取决于

标签: rubyrspeccircleci

解决方案


在某个时间点之后,较旧的补丁版本不会在 Docker Hub 上发布。如果您想要在变体图像中可用的最新软件,例如-browser,您需要使用更高版本的 Ruby 2.4,例如 2.4.6。例如,这张图片circleci/ruby:2.4.6-browsers

如果由于某种原因您不能这样做,请使用 CircleCI Ruby 2.4.1 映像,标准版本而不是变体,然后为其中包含您需要的软件构建您自己的 Docker 映像。


推荐阅读