LoginSignup
0

More than 5 years have passed since last update.

litaの開発環境構築と開発環境トラブルの対処

Posted at

litaとは

Lita: ChatOps for Ruby

  • Rubyでチャットボットを開発するためのGem
  • Gemとして公開されているプラグインで拡張できる
  • プラグインやアプリのジェネレータ付き
  • 接続先サービスはプラグインを入れる事でslackやTwitter等が選べる。自分で書くこともできる。
    • lineは今のところ公開されているgemには見当たらない

開発環境構築

基本的にはどのOSでもlita開発チームが用意している開発環境構築用のリポジトリを使うのが簡単。vagrantにCoreOSを乗せて、そこにDockerでredisとRubyを乗せている。

  • VirtualBoxを入れる
  • vagrantを入れる
git clone https://github.com/litaio/development-environment.git
cd development-environment
vagrant up; vagrant ssh
### ここからVM内
lita-dev
### ここからコンテナ内
lita new app_name # アプリの雛形生成
cd app_name
bundle install
lita # デフォルトのshellアダプターでボットが起動される

# @lita infoを実行してみてバージョン情報が表示されればOK
Type "exit" or "quit" to end the session.
Lita > @lita info
@lita info
Lita 4.7.0 - https://www.lita.io/
Redis 3.0.7 - Memory used: 797.04K

起動できるのを確認できたらボットを置きたいサービスにつなぐためのGemをgemファイルに入れたり、Handler(ユーザの発言等に対する動作を定義する)として好きなロジックを実装して開発を進められる。

一番安直な解決作

  • lita-devを叩いてもコンテナの起動が終わらない
  • ホストのファイルが見えない

等の問題はそれなりにネット回線が太い場所にいるならvagrant destroy; vagrant upしてVMとコンテナを再構築すれば済む。VMやコンテナに何かgem以外の物を入れているので消したくない等の場合は以下。

lita-devを叩いても延々待たされる

The development environment is still starting up. Please wait.....

これが延々続く場合がある。

core@lita-dev ~ $ systemctl | grep lita
● lita-dev.service                                                                         loaded failed failed    Lita development environment

systemctlコマンドを叩いてlita-devが死んでいたらこれが原因。

# vagrant ssh したcoreosの中で
sudo systemctl restart lita-dev.service
lita-dev
core@lita-dev ~ $ systemctl | grep lita
lita-dev.service                                                                         loaded active running   Lita development environment

こうなればOK

ホストのファイルが見えない

一旦VMを落としてから再度立ち上げるとworkspace以下のファイルが見えない場合がある。docker psでlita-devコンテナのIDを確認してdocker restart コンテナIDでコンテナを再起動してやると見えるようになった。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0