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でなく構築するか。。さてさてです(^^)