如何在 CircleCI docker 图像中指定包安装(对于 Yarn)?
How do I specify a package installation (for Yarn) within a CircleCI docker image?
我正在使用 CircleCI 来测试 Rails 应用程序。我需要 运行 让我的图像使用更高版本的 Yarn(当前为 1.19),而不是我们用于 CI 测试(circleci/ruby:2.6-node-browsers
)的图像。
config.yml
中的 step/entry 配置是什么?我假设我必须在升级 Yarn 版本的构建步骤中 运行 一些东西(在图像中当前是 1.17。)但我无法弄清楚它是什么。
从 the Circle docs on Yarn 开始,我尝试通过示例中的 curl
命令安装 Yarn(截至 19 年 10 月),它是:
run:
name: install Yarn
command: curl -o- -L https://yarnpkg.com/install.sh | bash
这 没有 工作 - yarn -v
仍然返回 1.17。
我随后收到了 CircleCI 支持的回复,并将其更改为:
- run: |
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ rc main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
sudo rm /usr/local/bin/yarn && sudo ln -s /usr/bin/yarn /usr/local/bin/yarn
这奏效了。我猜是因为 sudo
的使用正确设置了全局路径软链接,而本地安装没有。我本可以通过重置 PATH
变量到达这里,但我将其粘贴在这里,因为使用 apt
路由对我来说似乎是 "better" 解决方案。
我正在使用 CircleCI 来测试 Rails 应用程序。我需要 运行 让我的图像使用更高版本的 Yarn(当前为 1.19),而不是我们用于 CI 测试(circleci/ruby:2.6-node-browsers
)的图像。
config.yml
中的 step/entry 配置是什么?我假设我必须在升级 Yarn 版本的构建步骤中 运行 一些东西(在图像中当前是 1.17。)但我无法弄清楚它是什么。
从 the Circle docs on Yarn 开始,我尝试通过示例中的 curl
命令安装 Yarn(截至 19 年 10 月),它是:
run:
name: install Yarn
command: curl -o- -L https://yarnpkg.com/install.sh | bash
这 没有 工作 - yarn -v
仍然返回 1.17。
我随后收到了 CircleCI 支持的回复,并将其更改为:
- run: |
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ rc main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
sudo rm /usr/local/bin/yarn && sudo ln -s /usr/bin/yarn /usr/local/bin/yarn
这奏效了。我猜是因为 sudo
的使用正确设置了全局路径软链接,而本地安装没有。我本可以通过重置 PATH
变量到达这里,但我将其粘贴在这里,因为使用 apt
路由对我来说似乎是 "better" 解决方案。