21
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

herokuでも自前のサーバでも動くhubotをdockerで作る

Last updated at Posted at 2015-06-20

追記(2015/09/26):
herokuのdocker-compose対応に伴ってdocker:startコマンドが無くなりました。
hubotについては書いていませんが、最新のheroku+dockerの連携方法についてはこちらの記事を参照してください。
-- 追記ここまで

herokuの無料プランが1日18時間になって、どこでhubotを動かすか悩んでいる方も多いのではないでしょうか。
そこで、herokuがdockerに対応したことを利用し、herokuでもその辺のサーバでも動くhubot入りコンテナを準備したいと思います。

前提として、ローカル環境には、以下がインストールされているものとします。

参考:
Slack で Hubot を使えるようにする
Docker + Yeoman + Hubot + Slack で簡単bot作成

まずは新しくhubotを作ります。

mkdir test-hubot && cd test-hubot
yo hubot

いろいろ聞かれるので、適宜答えてください。
処理が終わると、hubot関係のファイルが展開されているはずです。

今回はadapterをslackにするので、API Tokenを調べておきましょう.
参考:SlackのHubot Integrationが知らぬ間にアップデートされてた

.envというファイルを以下の内容で作成します。

.env
HUBOT_SLACK_TOKEN=XXXX

XXXXは、さっき調べたAPI Tokenで置き換えてください。

次に、Dockerfileを準備します。
まずherokuのdockerプラグインを導入します。

heroku plugins:install heroku-docker

以下のコマンドでDockerfileが生成されます。

heroku docker:init

あとはdocker:startでhubotが動きます。

heroku docker:start

slackからpingと入力して動作確認してみましょう。
PONGと返って来れば、正しく動作しています。

これで、heroku-toolbeltとdockerがあればhubotがどこでも動くようになりました。
では、herokuにデプロイしてみましょう。

heroku create --app HOGEHOGE
heroku config:add --app HOGEHOGE HUBOT_SLACK_TOKEN=XXXX
heroku docker:release --app HOGEHOGE

もういちどslackからpingと入力してPONGと返って来れば、heroku上でhubotが動いています。
お手軽ですね。

21
19
2

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
21
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?