LoginSignup
3
4

More than 5 years have passed since last update.

hubotをdockerで動かしてみる(クラウド編)

Posted at

はじめに

チーム開発をしていて、レビュアーが足りなくて、レビュー待ちが発生することがあります。
そこで、レビュアーを増やすために、hubotにレビュアーを抽選&アサインさせてみようと思います。
せっかくなので、普通に動かすのではなくて、dockerでローカルでもクラウド(Heroku)でも同じように動かします。
今回は、クラウド(Heroku)編です。
前回のローカル編はこちら

さっさと動かしてみたい人は、こちらのリポジトリを参照ください。
https://github.com/imunew/hubot-github-reviewer-lotto

レビュアー抽選のアイデアは、下記のスライドが元ネタになっています。

事前準備

セットアップ

heroku login

$ heroku login
 ▸    heroku-cli: update available from 6.9.3-f709986 to 6.11.2-2aff95b
Enter your Heroku credentials:
Email: user@example.com
Password: ********
Logged in as user@example.com

heroku create(アプリケーションの作成)

$ heroku create hubot-github-reviewer-lotto
  Creating ⬢ hubot-github-reviewer-lotto... done
  https://hubot-github-reviewer-lotto.herokuapp.com/ | https://git.heroku.com/hubot-github-reviewer-lotto.git

Heroku Container Registry and Runtime のインストール

HerokuでDockerを使うには、Container Registry and Runtimeというプラグインを使います。

$ heroku plugins:install heroku-container-registry
Installing plugin heroku-container-registry... done

heroku-container-toolsは、deprecatedになっていますので、インストール済みの場合は、アンインストールしておいてください。

$ heroku plugins:uninstall heroku-container-tools

Container Registry にログイン

$ heroku container:login
Login Succeeded

コンテナをpush

$ cd /path/to/hubot-github-reviewer-lotto
$ cd heroku
$ heroku container:push hubot

この段階で、Herokuにログインして確認してみると、hubot-github-reviewer-lottoアプリが作成されています。

heroku_apps.png

さらにクリックしてダッシュボードに遷移すると、container:pushしたhubotコンテナが表示されています。

hubot_container.png

環境変数を設定

config:setコマンドで下記のように、環境変数をセットします。
REDIS_URLについては、後述します(セットしなくてOKです)。

$ heroku config:set HUBOT_GITHUB_TOKEN={Input your github token}
$ heroku config:set HUBOT_GITHUB_ORG={Input your github organization}
$ heroku config:set HUBOT_GITHUB_REVIEWER_TEAM={Input your github reviewer team}
$ heroku config:set HUBOT_GITHUB_WITH_AVATAR={Input use avatar flag}
$ heroku config:set HUBOT_SLACK_TOKEN={Input your slack token}

尚、WebのSettingsタブからも環境変数の設定が可能です。
.envからコピペすることを考えると、コマンドからの設定が楽です。

Redis のセットアップ

こちらを参考にコマンドでAddonを追加することもできますが、WebのResourcesタブからも追加することが可能です。

Add-onsの検索欄で、redisと入力すると、下記のように候補がリストアップされるので、Heroku Redisを選択します。

search_addon_redis.png

Planの確認ダイアログが表示されますので、デフォルトのHobby Dev - Freeのまま、Provisionボタンをクリックします。

select_addon_plan.png

Provisionが完了すると、環境変数REDIS_URLが自動でセットされます。

hubot コンテナの起動

コンテナをpushしただけでは、起動していないので、起動させます。
Overviewタブにある、Configure Dynosというリンクをクリックします。

編集ボタン(鉛筆のマーク)をクリックすると、編集モードになります。
大変、分かりづらいのですが、ON/OFFのスイッチがあり、ONにすると下記のようになりますので、その状態でconfirmボタンをクリックします。

turn_on_dynos.png

起動確認

右上のMoreのメニューから、View logsを選択すると、ログページに遷移します。

logs.png

ローカル編で動かしたときと同様に、
hubotを追加したSlackチャンネルにて、下記のようにコマンドを入力します。
{bot name} reviewer for {repository name} {PR Number}

Botから通知があれば、成功です。

reviewer_lotto.png

おわりに

このhubot-github-reviewer-lottoリポジトリをベースに、scripts/ファイルを色々追加していって、自分専用のBotを作ってもらえたら幸いです。
また、hubot以外のWebアプリもHeroku+Container Registryで動かしてみたいですね。

ではでは。

3
4
0

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
3
4