4

我有一个通过 Gitlab 部署的节点应用程序。我正在使用泊坞窗图像node:12.8.0

最近部署失败,出现以下错误

 $ dpl --provider=heroku --app=$HEROKU_DEVELOPMENT_APP --api-key=$HEROKU_API_KEY --skip-cleanup
 Installing deploy dependencies
 ERROR:  Error installing dpl-heroku:
     faraday requires Ruby version >= 2.4.
 Successfully installed multipart-post-2.1.1
 Successfully installed ruby2_keywords-0.0.2
 /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- dpl/provider/heroku (LoadError)
     from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
     from /var/lib/gems/2.3.0/gems/dpl-1.10.15/lib/dpl/provider.rb:93:in `rescue in block in new'
     from /var/lib/gems/2.3.0/gems/dpl-1.10.15/lib/dpl/provider.rb:68:in `block in new'
     from /var/lib/gems/2.3.0/gems/dpl-1.10.15/lib/dpl/cli.rb:41:in `fold'
     from /var/lib/gems/2.3.0/gems/dpl-1.10.15/lib/dpl/provider.rb:67:in `new'
     from /var/lib/gems/2.3.0/gems/dpl-1.10.15/lib/dpl/cli.rb:31:in `run'
     from /var/lib/gems/2.3.0/gems/dpl-1.10.15/lib/dpl/cli.rb:7:in `run'
     from /var/lib/gems/2.3.0/gems/dpl-1.10.15/bin/dpl:5:in `'
     from /usr/local/bin/dpl:22:in `load'
     from /usr/local/bin/dpl:22:in `'
 Running after_script
 00:01
 Running after script...
 $ echo "Job - $CI_JOB_NAME ended."
 Job - deploy_development ended.
 Cleaning up file based variables
 00:01
 ERROR: Job failed: exit code 1

我无法通过apt-get install ruby2.4.

任何意见,将不胜感激。谢谢

4

2 回答 2

6

我今天在 Gitlab CI 中遇到了同样的问题。

问题是 Node 默认使用debian stretch(版本 9)作为 docker 镜像的基础,至少在 12.x LTS 版本中是这样。此版本的 debian默认在 repositories 中有 Ruby 2.3.3 , Faraday 不支持,需要版本等于或大于 2.4

我所做的是使用 12.x-buster 标签(注意-buster版本标签末尾的),并且在这些 docker Node 的图像中使用 debian buster(版本 10)作为基础。此版本的 debian默认具有 Ruby 2.5.5 存储库,这允许安装 Faraday,因此 dpl for heroku 可以正常工作。

于 2020-10-19T15:34:17.890 回答
0

那些在 travis-ci 上遇到这个问题的人,我可以通过添加一个before_deploy命令来指定要使用的法拉第版本来做到这一点。

...
before_deploy:
  - rvm $(travis_internal_ruby) --fuzzy do ruby -S gem install faraday -v 1.8.0
deploy:
  provider: heroku
  api_key: $HEROKU_API_KEY
...

更多细节:https ://travis-ci.community/t/heroku-deploy-fails-installing-dpl-heroku-encounters-faraday-error/12563/6?u=hallmanitor

于 2022-01-12T19:28:46.570 回答