概要
hubot-starbucks-egiftの環境構築方法をまとめました
docker/docker-composeをインストール
- seleniumをインストールする必要がある関係で、docker上にhubotを作成する
- docker/docker-composeのインストールは公式ページを参考にインストール
- docker
- docker-compose
ディレクトリ構成
- app
- docker-compose.ymlを配備
- app/bot
- hubotコンテナのディレクトリ
- app/bot/resources
- メッセージを格納するディレクトリ
- app/bot/judge
- 条件判定スクリプトを格納するディレクトリ
ホスト環境にhubotをインストール
hubotをインストール
npm install -g hubot coffee-script yo generator-hubot
hubotを作成
app/botのディレクトリに移動し、雛形を作成する
app/bot
yo hubot
package.jsonとexternal-scripts.jsonにhubot-starbucks-egiftを追記する
app/bot/package.json
"dependencies": {
"hubot-starbucks-egift": "0.0.1"
}
app/bot/external-scripts.json
["hubot-starbucks-egift"]
Dockerfileを作成する
app/botにDockerfileを作成する
※adapterをslackにしています
app/bot/Dockerfile
FROM iojs:2.3.0
RUN mkdir /bot && cd /bot
ADD . /bot
WORKDIR /bot
CMD ["bin/hubot", "--adapter", "slack"]
docker-compose.ymlを作成する
appディレクトリにdocker-compose.ymlを作成
※ ブラウザを確認できるようにデバッグ用の設定です
app/docker-compose.yml
selenium:
image: selenium/standalone-chrome-debug:2.46.0
ports:
- "4444:4444"
- "5900:5900"
environment:
SCREEN_WIDTH: 1280
SCREEN_HEIGHT: 800
volumes:
- /dev/urandom:/dev/random
bot:
build: ./bot
restart: always # 接続が切れるとhubotが落ちるので再起動を設定
ports:
- "8080:8080"
environment:
HUBOT_SLACK_TOKEN:
SELENIUM_BROWSER: chrome
SELENIUM_REMOTE_URL: http://<プライベートIP>:4444/wd/hub # なぜかlocalhostだと接続できないので
STARBUCKS_MAIL_ADDRESS: 決済通知用のメールアドレス
STARBUCKS_CREDIT_NUMBER: "クレジットカード番号"
STARBUCKS_CREDIT_MONTH: "クレジットカード(月)"
STARBUCKS_CREDIT_YEAR: "クレジットカード(年)"
起動
appディレクトリで以下を実行すると、hubotとseleniumのコンテナが起動する
app
docker-compose up -d