Go to list of users who liked
Share on X(Twitter)
Share on Facebook
More than 5 years have passed since last update.
hubotをすでにslackと連携していて、全く同じbotを別のslackに繋げたらいいな、
起動時のパスでトークン渡してるんだから、別のトークン渡せばいいんじゃない?と思ったんです。
ところがうまくいかなかったので調べました。
雰囲気から察するに、複数起動できない時やはslack adapter関係なさそうなので、
複数のhubotを起動したかったんだけどうまくいかない!っていう時はチェックしてみてください。
TL;DL
- hubotを複数起動するにはPORT環境変数の指定が必要なことがある
- bin/hubot はシェルスクリプトなのでお気に召すままカスタマイズ
やってみた
エラーがでて2個目が起動しません。
[Wed Apr 25 2018 13:35:47 GMT+0900 (JST)] ERROR Error: listen EADDRINUSE 0.0.0.0:8080 at Object._errnoException (util.js:1022:11) at _exceptionWithHostPort (util.js:1044:20) at Server.setupListenHandle [as _listen2] (net.js:1367:14) at listenInCluster (net.js:1408:12) at doListen (net.js:1517:7) at _combinedTickCallback (internal/process/next_tick.js:141:11) at process._tickCallback (internal/process/next_tick.js:180:9)ということでググってみると、
-デフォルトでport 8080として起動する
-変更するには環境変数PORTを設定する
ということがわかりました。
また、 hubot の bin/hubot は実はshell scriptなので、こいつの中で環境変数を設定してやればいいようです。
せっかくなので、起動用のスクリプト内でtoken指定やadapter 指定もしてしまいましょう。
ついでに npm installをこのスクリプトが毎回やっているのですが、起動が遅くなるので必要なタイミングで自分でnpm installできるなら消してしまっていいと思います。
そんな感じで出来上がった起動スクリプトがこんな感じ
# !/bin/shset-eexportPATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"# 他と被らないPORTを指定するexportPORT=8091# slack tokenexportHUBOT_SLACK_TOKEN=xxx-99999999999-XXXXXXXXXXXXXXXXXXXX# -a(--adaptor)でアダプターを決め打ちするexecnode_modules/.bin/hubot--name"hubots""$@"-a slack2個目のhubotについては、これをコピーしてslack tokenとportだけ書き換えればOKです。
参考
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
