heroku+sinatra+mecabの最小構成実行環境の整備


やりたいこと

Qiitadon みてたら、「MeCabを用いたSinatraアプリケーションをHerokuにデプロイしようとしてつまづいております。どなたかお助けを…」って言っている人がいたので、助けに行く。

トゥート:https://qiitadon.com/@a_ta/100382612720547690


(Qiitadonの埋め込みができないよ、Qiitaさん!)


目標


  • heroku 上で sinatra を使って公開しているアプリで mecab を使いたい

  • 最低限のコードで動くものを目指す


環境


  • heroku 無料枠

  • ruby 2.3.7

  • mecab 0.996


ファイル


ファイル構造

mecab_on_heroku

├── .gitignore
├── Gemfile
├── Gemfile.lock
├── Procfile
└── app.rb


ファイル内容


.gitignore

/vendor



Gemfile

ruby "2.3.7"

source 'https://rubygems.org'
gem 'sinatra'
gem 'mecab', '0.996'


Procfile

web: ruby app.rb



app.rb

require 'sinatra'

require 'mecab'

get '/' do
str = "我々宇宙人は地球を侵略しに来ました。"
tagger = MeCab::Tagger.new
"#{tagger.parse(str)}"
end


Gemfile.lock は Gemfile を保存してから以下のコマンドを実行すると作成される。


コマンド実行

bundle install --path vendor/bundle



heroku のデプロイ

cd mecab_on_heroku  # 任意の作業ディレクトリ

heroku create -a heroku_app_name --buildpack https://github.com/diasks2/heroku-buildpack-mecab.git
heroku config:set LD_LIBRARY_PATH=/app/vendor/mecab/lib

ファイル構造で示した5つのファイルを作成したのち、下記のコマンドを実行する。

git add .

git commit -m "first commit."
git push heroku master


動作確認

以下のコマンドを実行すると、自動でデフォルトブラウザが開き、heroku アプリにアクセスする。

heroku open


参照ページ

GitHub: heroku-buildpack-mecab リポジトリページ