HubotのSlackインテグレーションをDockerでやる
n番煎じになっちゃいますが、
Slackと連携するHubotをDocker上で動かします。
いろんな人のDockerfileを見てると
- centos6をベースに作成
- nodeをベースにして作成
しているようです。
nodeをベースに作成してもいいんですが、
それだとvimとか入ってないので、開発しづらいかなあ。
centos6も7もそんな変わらん気がするけど、
centos7をベースにDockerfileを書いてみます。
Dockerfile
FROM centos:7 RUN yum update -y RUN yum install -y vim RUN yum install -y epel-release RUN yum install -y nodejs npm RUN npm install -g yo generator-hubot coffee-script hubot-slack RUN useradd -d /home/hubot -m -s /bin/bash -U hubot USER hubot WORKDIR /home/hubot RUN yo hubot --owner "328" --name "bot name" --description "Hubot Slack" --adapter slack CMD cd /home/hubot; bin/hubot --adapter slack
docker-compose.yml
docker-compose書いておくと、環境変数増えた時に楽になるので、一応書いてます。
hubot-slack: build: ./ volumes: - /etc/localtime:/etc/localtime:ro environment: - HUBOT_SLACK_TOKEN=hogehoge - HUBOT_SLACK_TEAM=teams.slack.com - HUBOT_SLACK_BOTNAME=botname
コンテナの時刻をホスト側と合わせるために、/etc/localtime
をread onlyでmountしてます。
ソースはGithubに置いてます。
動作チェック
$docker-compose build $docker-compose up -d
slackのhubotにping
を送るとpong
と返ってくるはずです。