将ruby应用程序部署到Cloud Foundry,rubygems失败

问题描述

我是红宝石的新手。我正在部署一个ruby应用程序,该应用程序从Slack读取Bug ID,将请求发送到Jira,并向Slack发送响应,并附上Bug详细信息。 在将此应用程序部署到Cloud Foundry时遇到问题。我在用, cloud Foundry build pack版本:1.8.25 捆绑器2.1.4 红宝石2.7.0 红宝石3.1.4。

我有一个包含命令bundle exec rackup config.ru -p $PORT的proc文件,当我执行cf push时,出现以下错误

 OUT Creating build for app with guid 
   2020-10-06T23:06:57.72-0400 [API/2] OUT Updated app with guid  ({"state"=>"STARTED"})
   2020-10-06T23:06:58.00-0400 [STG/0] OUT Cell  creating container for instance 
   2020-10-06T23:06:58.38-0400 [STG/0] OUT Cell successfully created container for instance 
   2020-10-06T23:06:58.70-0400 [STG/0] OUT Downloading app package...
   2020-10-06T23:06:58.75-0400 [STG/0] OUT Downloaded app package (869K)
   2020-10-06T23:07:01.25-0400 [STG/0] OUT -----> Download go 1.12.4
   2020-10-06T23:07:12.96-0400 [STG/0] OUT /tmp/buildpackdownloads/234werwrwr9c73796ddef6bc0d ~
   2020-10-06T23:07:12.96-0400 [STG/0] OUT -----> Running go build supply
   2020-10-06T23:07:15.23-0400 [STG/0] OUT ~
   2020-10-06T23:07:15.23-0400 [STG/0] OUT -----> Ruby Buildpack version 1.8.25
   2020-10-06T23:07:15.23-0400 [STG/0] OUT -----> Supplying Ruby
   2020-10-06T23:07:15.24-0400 [STG/0] OUT -----> Installing bundler 2.1.4
   2020-10-06T23:07:15.24-0400 [STG/0] OUT        Download [https://url/dependencies/bundler/bundler-2.1.4-any-stack-df7bed89.tgz]
   2020-10-06T23:07:16.64-0400 [STG/0] OUT -----> Installing ruby 2.7.0
   2020-10-06T23:07:16.64-0400 [STG/0] OUT        Download [https:/URL/dependencies/ruby/ruby-2.7.0-linux-x64-cflinuxfs3-68cd2bae.tgz]
   2020-10-06T23:07:19.08-0400 [STG/0] OUT        **WARNING** A newer version of ruby is available in this buildpack. Please adjust your app to use version 2.7.1 instead of version 2.7.0 as soon as possible. Old versions of ruby are only provided to assist in migrating to newer versions.
   2020-10-06T23:07:21.18-0400 [STG/0] OUT -----> Update rubygems from 3.1.2 to 3.1.4
   2020-10-06T23:07:21.18-0400 [STG/0] OUT -----> Installing rubygems 3.1.4
   2020-10-06T23:07:21.18-0400 [STG/0] OUT        Download [https://URL/dependencies/rubygems/rubygems_3.1.4_linux_noarch_any-stack_b59c5e57.tgz]
   2020-10-06T23:07:22.40-0400 [STG/0] ERR /tmp/rubygems270167546/lib/rubygems/core_ext/kernel_require.rb:92:in `require': /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: version `OPENSSL_1_1_1' not found (required by /tmp/contents329128731/deps/0/ruby/lib/ruby/2.7.0/x86_64-linux/openssl.so) - /tmp/contents329128731/deps/0/ruby/lib/ruby/2.7.0/x86_64-linux/openssl.so (LoadError)
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/core_ext/kernel_require.rb:92:in `require'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/contents329128731/deps/0/ruby/lib/ruby/2.7.0/openssl.rb:13:in `<top (required)>'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/core_ext/kernel_require.rb:92:in `require'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/core_ext/kernel_require.rb:92:in `require'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/specification.rb:2430:in `to_ruby'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/commands/setup_command.rb:401:in `install_default_bundler_gem'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/commands/setup_command.rb:174:in `execute'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/command.rb:325:in `invoke_with_build_args'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/command_manager.rb:178:in `process_args'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/command_manager.rb:148:in `run'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from /tmp/rubygems270167546/lib/rubygems/gem_runner.rb:59:in `run'
   2020-10-06T23:07:22.40-0400 [STG/0] ERR  from setup.rb:41:in `<main>'
   2020-10-06T23:07:22.40-0400 [STG/0] OUT        **ERROR** 
   2020-10-06T23:07:22.40-0400 [STG/0] OUT        **ERROR** Unable to update rubygems: Could not install rubygems: exit status 1
   2020-10-06T23:07:22.42-0400 [STG/0] ERR Failed to compile droplet: Failed to run all supply scripts: exit status 15
   2020-10-06T23:07:22.44-0400 [STG/0] OUT Exit status 223

让我知道是否需要其他信息。

在运行“捆绑安装”尝试安装gem时,发生此故障。

解决方法

目前提供的信息尚不清楚,但是存在以下错误:

2020-10-06T23:07:22.40-0400 [STG / 0]错误/tmp/rubygems270167546/lib/rubygems/core_ext/kernel_require.rb:92:在require': /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: version 中找不到OPENSSL_1_1_1(由/tmp/contents329128731/deps/0/ruby/lib/ruby/2.7.0/x86_64-linux/openssl.so)-/tmp/contents329128731/deps/0/ruby/lib/ruby/2.7.0/x86_64-linux /openssl.so(LoadError)

看起来您有一个需要在cflinuxfs2上使用cflinuxfs3的构建包。这两个堆栈具有不同的OpenSSL版本,cflinuxfs3具有1.1.1。

切换堆栈至少应允许您克服此错误。

cf push -s cflinuxfs3或在manifest.yml中设置stack: cflinuxfs3


对于它的价值,在我写这篇cflinuxfs2的时候,它已经过时了,已经超出了支持范围。如果您使用的平台仍默认为cflinuxfs2堆栈,或者甚至可以选择使用该平台,则应与您的平台运营团队讨论如何尽快升级。