在CircleCI中配置Ruby版本后仍报错,如何正确设置?
正确的CircleCI Ruby版本设置方式
我之前也碰到过这个一模一样的坑!问题出在你当前用的machine executor上——你在machine下面写的ruby: version: 2.4.4其实是无效的,CircleCI的machine环境默认用的是系统自带的Ruby 2.3.3,不会自动帮你切换版本,所以才会和Gemfile里指定的2.4.4冲突报错。
给你两种靠谱的解决办法,推荐第一种:
方法一:使用CircleCI Ruby Docker镜像(推荐)
用docker executor替代machine,直接指定预装了Ruby 2.4.4的官方镜像,这样环境版本完全匹配,配置更简洁:
version: 2 jobs: build: docker: - image: circleci/ruby:2.4.4 steps: - checkout - run: bundle install - run: echo "hello"
这个镜像已经帮你配置好了Ruby 2.4.4,不需要额外操作,直接就能满足Gemfile的版本要求。
方法二:在machine环境手动切换Ruby版本
如果你因为某些原因必须用machine executor,可以通过rbenv手动安装并切换到2.4.4版本:
version: 2 jobs: build: machine: true steps: - checkout - run: | rbenv install 2.4.4 rbenv global 2.4.4 ruby -v # 这一步可以确认版本是否切换成功 - run: bundle install - run: echo "hello"
CircleCI的machine环境默认预装了rbenv,所以可以直接用它来安装指定版本的Ruby,设置全局版本后再执行bundle install就不会报错了。
内容的提问来源于stack exchange,提问作者Harshit Garg
相关产品推荐
相关产品推荐

