Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gitlab dpl issue with ruby version

I have a node app that I am deploying through Gitlab. I am using docker image node:12.8.0.

Recently it has been failing deployment with the following error

 $ 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

I am unable to install Ruby2.4 through apt-get install ruby2.4.

Any advice would be appreciated. Thanks

like image 324
Devatanu Avatar asked Oct 29 '25 16:10

Devatanu


1 Answers

I had the same problem today in Gitlab CI.

The problem is that Node uses debian stretch (version 9) by default as the base for docker images, at least in the 12.x LTS versions. This version of debian has Ruby 2.3.3 by default in the repositories, which is not supported by Faraday, which requires a version equal to or greater than 2.4.

What I did was use the 12.x-buster tag (notice the -buster at the end of the version tag) and in these images of docker Node uses debian buster (version 10) as a base. This version of debian has Ruby 2.5.5 repositories by default, which allows Faraday to be installed and therefore dpl for heroku works normally.

like image 194
Cristiam Mercado Avatar answered Oct 31 '25 12:10

Cristiam Mercado



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!