Ubuntu + Docker + Rocket.Chat + Hubot + リマインダーの環境構築その2
Docker環境の構築は、こちらを参照してください。
さて各種コンテナをダウンロードしていきます。
1. rocket.chat をpullします。
$ sudo docker pull rocketchat/rocket.chat
Using default tag: latest
latest: Pulling from rocketchat/rocket.chat
c0c53f743a40: Pull complete
743f3f406194: Pull complete
cdca34ec0fad: Pull complete
f88bc91ab251: Pull complete
07e37c6606e0: Pull complete
27673fb7d07d: Pull complete
Digest: sha256:886d3c049ec4299243d1459eeea4ea915d433b9657a2a75ae5c2c0dee8e46ab5
Status: Downloaded newer image for rocketchat/rocket.chat:latest
docker.io/rocketchat/rocket.chat:latest
2. mongo をpullします。
$ sudo docker pull mongo:4.0
4.0: Pulling from library/mongo
b5e173e44934: Pull complete
29047100b040: Pull complete
15743a713c2a: Pull complete
4b6bc9e29877: Pull complete
bd0742b61183: Pull complete
9ac88a40bfb7: Pull complete
cc2a2c44348f: Pull complete
9f1c4d1da927: Pull complete
6f710eae0da4: Pull complete
ca24f3ca70c3: Pull complete
5c5ae9ffe7bc: Pull complete
71541f27ccb0: Pull complete
ebf209879472: Pull complete
Digest: sha256:f9abc51175e73c807bd146689c563980e12a1f797aba153d13961e91e5a45c11
Status: Downloaded newer image for mongo:4.0
docker.io/library/mongo:4.0
※4.0を指定しているのは、rocket.chatのdocker-composeで指定されているためです。
3. hubot-rocketchat をpullします。
$ sudo docker pull rocketchat/hubot-rocketchat:latest
latest: Pulling from rocketchat/hubot-rocketchat
9f0706ba7422: Pull complete
d3942a742d22: Pull complete
62b1123c88f6: Pull complete
2dac6294ef18: Pull complete
fd18c4867ed6: Pull complete
c8b70cd3e56f: Pull complete
a8832c4f8b52: Pull complete
8dd32c53b223: Pull complete
0e3c9133077d: Pull complete
bb5fbb3b42e6: Pull complete
a72fd502dc4a: Pull complete
bb950439f54d: Pull complete
2071f5cbac16: Pull complete
Digest: sha256:6889b14ae74e1d880a1db5d8209e9afb4afcbbd6af238a3a11884ecb8ed106d0
Status: Downloaded newer image for rocketchat/hubot-rocketchat:latest
docker.io/rocketchat/hubot-rocketchat:latest
4. docker-composeを取得します。
※環境を/var/www/rocket.chat配下に構築します。
# mkdir -p /var/www/rocket.chat
# cd /var/www/rocket.chat/
# curl -L https://raw.githubusercontent.com/RocketChat/Rocket.Chat/develop/docker-compose.yml -o docker-compose.yml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3088 100 3088 0 0 516 0 0:00:05 0:00:05 –:–:– 695
docker-compose.yamlができているかを確認してください。
5. Mongoのリポジトリ取得・起動
# docker-compose up -d mongo
Creating network “rocketchat_default” with the default driver
Creating rocketchat_mongo_1 … done
6. docker-composeのリポジトリ取得・起動
# docker-compose up -d mongo-init-replica
rocketchat_mongo_1 is up-to-date
Creating rocketchat_mongo-init-replica_1 … done
7. Rocket.Chatのリポジトリ取得・起動
# docker-compose up -d rocketchat
rocketchat_mongo_1 is up-to-date
Starting rocketchat_rocketchat_1 … done
8. 起動を確認してみます。
# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------
rocketchat_mongo-init-replica_1 docker-entrypoint.sh bash ... Exit 0
rocketchat_mongo_1 docker-entrypoint.sh mongo ... Up 27017/tcp
rocketchat_rocketchat_1 bash -c for i in `seq 1 30 ... Up 0.0.0.0:3000->3000/tcp
9. タイムゾーンを指定します。
docker-compose.yamlにタイムゾーンの指定がないので指定しておきます。
rocketchat: 、hubot: に追加します。
environment:に追記します。
– TZ=Asia/Tokyo
rocket.chatを起動し直します。
10. リマインダーの追加
今回リマインダーとしては、scheduleを利用します。
docker-compose.yamlを編集します。
hubot: のEXTERNAL_SCRIPTに hubot-schedule を追加します。
– EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics,hubot-schedule
11. hubotのリポジトリ取得・起動
# docker-compose up -d hubot
12. botユーザーの作成
docker-compose.yamlに hubot で使用するユーザーの情報が記載されているので、rocket.chat のユーザーとして追加します。
また、hubot が動作するroomも general と指定されています。
13. hubotの動作確認
@bot ping って入力したら「PONG」って返ってきたら、hubotが無事動作しています。
14. リマインダーの確認
@bot schedule add “2020-06-24 13:00” どうだ!
って入力したら、 74: Schedule created と表示されます。
これで、無事動いてくれています(^^)
さてさて。。。
結構端折りました。。
1)Rocket.chat のセットアップ内容。。。
他でも書かれていますので、確認してみてください。
2)Webサーバーとの連携。。
このままでは、ポートを指定してのアクセスしかできない状態です。
今回のサーバーはnginxで動作しています。
nginxをリバースプロキシとして連動させれば、SSLでの通信も可能です。
こちらは、後ほど記載します。
3)Rocket.chatの使い方。。
現在、slackとの比較で資料作成中です。
近いうちに公開できるかと思います。
4)リマインダーの永続化の手順
redisと連動させれば、リマインダーの永続化が可能になります。
hubotのコンテナのpackage.jsonをみたら、hubot-redis-brain が登録されているので、セットアップするだけでいけるんじゃとは考えています。
ただ、同じ、docker-compose.yaml ではなく、別のにするか、もしくはdockerでなく構築するか。。さてさてです(^^)