読者です 読者をやめる 読者になる 読者になる

技術ネタとかの備忘録

最近の技術ネタとかの備忘録を書いていくブログです

BluemixでPostgreSQLエラーが発生する

Bluemix上でRailsアプリを動かしたときに以下のエラーが発生した。

502 Bad Gateway: Registered endpoint failed to handle the request.

ログを確認してみると、PostgreSQLでエラーが発生している模様。

2016-09-10T11:54:59.647+0900[App/0]ERRruby: symbol lookup error: /home/vcap/app/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/pg-0.18.4/pg_ext.so: undefined symbol: rb_thread_select

原因を調査してみるとStack Overflowの以下の記事がヒットしました。

stackoverflow.com

Rubyのバージョンが原因でした。Rubyのバージョンを"2.3.1"に変更して再度デプロイしようとしましたが、Bluemixが提供しているRubyランタイムに"2.3.1"は含まれていませんでした。

Starting app アプリ名 in org 組織名 / space スペース名 as メールアドレス...
-----> Downloaded app package (44K)
-----> Downloaded app buildpack cache (29M)
-------> Buildpack version 1.6.16
       Downloaded [file:///var/vcap/data/dea_next/admin_buildpacks/403dd09f-a098-4f46-b14f-cfb034fbe30a_202f38bad1a7c142025bb8b27976bf2fc80655c5/dependencies/https___pivotal-buildpacks.s3.amazonaws.com_ruby_binaries_shared_bundler-1.11.2.tgz]
-----> Compiling Ruby/Rails
       DEPENDENCY MISSING IN MANIFEST: ruby 2.3.1
       It looks like you're trying to use ruby 2.3.1.
       Unfortunately, that version of ruby is not supported by this buildpack.
       The versions of ruby supported in this buildpack are:
       - 2.3.0
       - 2.2.4
       - 2.2.3
       - 2.1.9
       - 2.1.8
       If you need further help, start by reading: http://github.com/cloudfoundry/ruby-buildpack/releases.
 !
 !     exit
 !
Staging failed: Buildpack compilation step failed


FAILED
BuildpackCompileFailed

TIP: use 'cf logs アプリ名 --recent' for more information

Finished: FAILED

そこで、ランタイムにコミュニティのビルドパックを使用しました。

Bluemixのダッシュボード上からランタイムは切り替える方法が分からなかったため、cfコマンドを使用してランタイムを変更しました。

cf push アプリ名 -b https://github.com/cloudfoundry/ruby-buildpack

これでエラーが解消されました。