ruby 版本的 Gitlab dpl 问题

Posted

技术标签:

【中文标题】ruby 版本的 Gitlab dpl 问题【英文标题】:Gitlab dpl issue with ruby version 【发布时间】:2021-02-01 22:05:43 【问题描述】:

我有一个通过 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 安装Ruby2.4。

任何建议将不胜感激。 谢谢

【问题讨论】:

【参考方案1】:

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

问题在于 Node 默认使用 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可以正常工作。

【讨论】:

非常感谢老先生,我整个早上都被这个卡住了。这总是有效的,它只是说我在 3 天前失败了。我想关于 dpl 的一些更新...... 为此苦苦挣扎了一整夜。非常感谢

以上是关于ruby 版本的 Gitlab dpl 问题的主要内容,如果未能解决你的问题,请参考以下文章

gitlab CI - 安装正确版本的纱线

gitlab

Gitlab的介绍

版本管理-gitlab

源码部署gitlab版本控制系统

Jenkins+GitLab+Ansible playbook安装与基本使用