はじめに
以下記事で紹介したチャットツールですが
今回は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
終わりに
起動が完了すれば以下のようにブラウザにアクセスができます。
上記のコマンドライナーはメモリを絞ったりボリュームを外出ししていないので実運用に向けてはチューニングは必要ですが、そもそもの起動に失敗している方の参考になれば幸いです。