やりたいこと
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