読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

herokuでRubyとphantomjsを使う

ウェブサイトのサムネイル画像を作るのに、phantomjsを使いました。サーバーサイドのJavaScriptに不慣れなため、他の処理はRubyで作りました。これをherokuにデプロイする時に少し苦労しましたので、以下、備忘録です。

1. 最小限のGemfileを用意して、`bundle install`し、.buildpack, Gemfile, Gemfile.lockでgitを始める。

bundle install
git init
git add .
heroku create <アプリ名>

2.ビルドパックgit://github.com/ddollar/heroku-buildpack-multi.gitを登録する。

heroku buildpacks:set https://github.com/ddollar/heroku-buildpack-multi.git

2. 使用するフレームワークを指定するファイル.buildpacksを用意する。
ファイルの中身は、

https://github.com/stomita/heroku-buildpack-phantomjs.git
https://github.com/heroku/heroku-buildpack-ruby.git

3. デプロイする。

git push heroku master

複数フレームワークが検出されることを確認します。

4. 環境変数LD_LIBRARY_PATH, PATHを設定する。
最後に読み込まれたフレームワーク環境変数が有効になるようです。上記の例ではphantomjs関連のパスが見えなくなりますので、以下のように合わせたものを設定します。

heroku config:add LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib:/app/vendor/phantomjs/lib PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin:/app/vendor/phantomjs/bin

5. あとは存分にアプリ開発!