我有一个通过Gitlab部署的节点应用程序。我使用的是docker镜像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安装Ruby2.4。
任何建议都将不胜感激。谢谢
发布于 2020-10-19 23:34:18
我今天在Gitlab CI上也遇到了同样的问题。
问题是节点默认使用debian stretch (version 9)作为docker镜像的基础,至少在12.x LTS版本中是这样。这个版本的debian有Ruby 2.3.3 by default in the repositories,法拉第不支持它,它需要a version equal to or greater than 2.4。
我所做的是使用12.x-buster标签(注意版本标签末尾的-buster ),并且在这些docker Node的图像中使用debian buster (版本10)作为基础。这个版本的debian有Ruby 2.5.5 repositories by default,它允许安装Faraday,因此dpl for heroku可以正常工作。
https://stackoverflow.com/questions/64422105
复制相似问题