hidao’s blog

IT系とか読書ログとか。

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

やりたいこと

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

トゥート:https://qiitadon.com/@a_ta/100382612720547690
(Qiitadonの埋め込みができないよ、Qiitaさん!)

目標

  • heroku 上で sinatra を使って公開しているアプリで mecab を使いたい
  • 最低限のコードで動くものを目指す

環境

ファイル

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

ファイル内容

/vendor
ruby "2.3.7"
source 'https://rubygems.org'
gem 'sinatra'
gem 'mecab', '0.996'
web: ruby 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 リポジトリページ