(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【チャットツール】dockerコマンドでRocketchatを利用する

スポンサーリンク

はじめに

以下記事で紹介したチャットツールですが

今回はdockerコマンドでRocketchatを利用する手順について紹介します。端末はWindows 10でDocker Desktopを利用してコンテナ実行環境を用意しています。

利用イメージ情報
$ docker image ls
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
rocketchat/rocket.chat   latest              decacd254a01        3 days ago          1.68GB
mongo                    latest              3f3daf863757        2 weeks ago         388MB

MongoDBコンテナを起動する

以下の環境にて

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$ docker container list
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

以下コマンドで起動します。

$ docker container create --name rocketchat_db mongo:latest --replSet rs0
6549661b4bbcd26990258e267ec32a90...

$ docker start rocketchat_db
rocketchat_db

起動しています。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
6549661b4bbc        mongo:latest        "docker-entrypoint.s…"   7 hours ago         Up 41 seconds       27017/tcp           rocketchat_db

この状態だと初期化ができていないので以下記事の構文を利用して

rs.initiage()を行います。

$ docker exec -it rocketchat_db mongo --eval "rs.initiate()"
MongoDB shell version v4.2.6
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("...-12236f07ff0a") }
MongoDB server version: 4.2.6
{
        "info2" : "no configuration specified. Using a default configuration for the set",
        "me" : "65...c:27017",
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1589479243, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1589479243, 1)
}

Rocket.chatコンテナを起動する

以下コマンドで起動します。

$ docker container create --name rocketchat -p 3000:3000 --link rocketchat_db:mongo -e MONGO_OPLOG_URL=mongodb://rocketchat_db:27017/local?replSet=rs0 rocketchat/rocket.chat:latest;
ce94c32d0c7...

$ docker container start rocketchat;
rocketchat

起動ができています。

$ docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                    NAMES
ce94c32d0c71        rocketchat/rocket.chat:latest   "node main.js"           7 hours ago         Up 42 seconds       0.0.0.0:3000->3000/tcp   rocketchat
6549661b4bbc        mongo:latest                    "docker-entrypoint.s…"   7 hours ago         Up 7 minutes        27017/tcp                rocketchat_db

docker logs -f rocketchatを確認すると

Browserslist: caniuse-lite is outdated. Please run next command `npm update`
➔ System ➔ startup
➔ +----------------------------------------------+
➔ |                SERVER RUNNING                |
➔ +----------------------------------------------+
➔ |                                              |
➔ |  Rocket.Chat Version: 3.2.2                  |
➔ |       NodeJS Version: 12.16.1 - x64          |
➔ |      MongoDB Version: 4.2.6                  |
➔ |       MongoDB Engine: wiredTiger             |
➔ |             Platform: linux                  |
➔ |         Process Port: 3000                   |
➔ |             Site URL: http://localhost:3000  |
➔ |     ReplicaSet OpLog: Enabled                |
➔ |          Commit Hash: a720d25f4e             |
➔ |        Commit Branch: HEAD                   |
➔ |                                              |
➔ +----------------------------------------------+

起動に成功していることが分かります。

ちなみにMONGO_OPLOG_URL=mongodb://rocketchat_db:27017/local?replSet=rs0が抜けていると以下メッセージにてエラーとなります。

OPLOG / REPLICASET IS REQUIRED TO RUN ROCKET.CHAT

終わりに

起動が完了すれば以下のようにブラウザにアクセスができます。

f:id:mtiit:20200515102339p:plain
ブラウザでアクセス可能

上記のコマンドライナーはメモリを絞ったりボリュームを外出ししていないので実運用に向けてはチューニングは必要ですが、そもそもの起動に失敗している方の参考になれば幸いです。