yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。
20211120_docker-machine_

Docker for Macを使わないと決めたあなたへ(2)〜docker-machine上でhubot-slackコンテナを立ち上げてみる〜

2021-11-20

Docker for Macを使わないと決めたあなたへ(1)〜docker-machineコマンドが使えるまで〜 の続き

作ったdocker-machineで、hubotが使えるコンテナを立ち上げ、Slack Botを動かしてみる


最終的な全体像はこちら
20211120_docker-machine_5


Dockerfileの作成
※Slack tokenを発行していない人はこちらから発行してください
https://api.slack.com/apps

docker@dockerMachineTest:~$ vim Dockerfile
docker@dockerMachineTest:~$ cat Dockerfile
FROM jordan/hubot-slack:latest

ENV HUBOT_SLACK_TOKEN='xoxb-【your slack token】'

ADD scripts/ /home/hubot/scripts/
docker@dockerMachineTest:~$

Dockerfileで、ローカルの「scripts/」ディレクトリをコンテナの「/home/hubot/scripts/」にマウントすると指定しているので、
scriptsディレクトリと、配下に簡単にスクリプトを作成する
Botに「Hi Bot!」と話しかけたら「Hi!」と返してくれるスクリプト

docker@dockerMachineTest:~$ mkdir scripts
docker@dockerMachineTest:~$ vim scripts/test.coffee
docker@dockerMachineTest:~$ cat scripts/test.coffee
module.exports = (robot) ->
  robot.respond /Hi bot!/i, (msg) ->
    msg.send "Hi!"
docker@dockerMachineTest:~$

イメージをビルドして、コンテナを立ち上げる

docker@dockerMachineTest:~$ docker build -t hubot-slack-img . && docker run -d --name hubot-slack hubot-slack-img:latest
...
...
Successfully built 106f80653d03
Successfully tagged hubot-slack-img:latest
961a9......e679f56e3e78a
docker@dockerMachineTest:~$

コンテナの中に入り、「./bin/hubot」でhubotを起動する

docker@dockerMachineTest:~$ docker exec -i -t hubot-slack bash
hubot@f6ef9e392864:~$ ./bin/hubot
...
...

Slack側でBotに話しかけると想定通りの返答をしてくれる
20211120_docker-machine_

本当は、Botを立ち上げるまで自動化したかったけど、うまくいかなかったので一旦ここで終わり

以上。