概要
Docker Compose コマンド1つで Rocket.Chat が動く環境を構築します。ソースコードからの構築や Docker コマンドの操作は面倒ですが、それらの課題を Compose を使って解決します。
Rocket.Chat とは? 「これは Slack ですか?」
Rocket.Chat ( https://rocket.chat/ ) は、オープンソースなウェブ・チャット・プラットフォームです。GitHub で有志による開発が行われており、MIT ライセンスで配布されています。ぶっちゃけ Slack クローンです。
動機
Docker や Docker Compose の実演(デモ)では Word Press が比較的多用される。しかし、Blog を書かない方にとっては興味対象外であることと、毎回デモに WordPress というのはベタすぎる。そこで、WordPress にかわり、アプリ+データベースの構成でありながら、実用度が高く Docker で利用可能なものを探し出した。……という極めて不純な理由です。
動作環境
- Docker daemon が稼働中の環境
- Docker Compose がセットアップ済み
手順
任意のディレクトリを作成し、docker-compose.yml
を作成します。以下の例はドキュメントのもので、「rocketchat」と「mongodb」の2つのコンテナを作成・リンクするものです。また、ホスト側のポート 80 番をコンテナのポート 80 に割り当てています。
rocketchat:
image: rocketchat/rocket.chat
environment:
- MONGO_URL=mongodb://mongodb/rocketchat
- ROOT_URL=http://localhost:80
links:
- mongodb
ports:
- 80:80
mongodb:
image: mongo
ports:
- 27017
起動するには、docker-compose up
コマンドを使います。
$ docker-compose up -d
Starting rkt_mongodb_1...
Starting rkt_rocketchat_1...
暫く待つと、Rocket.Chat が起動します。docker-compose ps
コマンドで状況を確認します。
$ docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------
rkt_mongodb_1 /entrypoint.sh mongod Up 0.0.0.0:32775->27017/tcp
rkt_rocketchat_1 /bin/sh -c bash $METEORD_D ... Up 0.0.0.0:80->80/tcp
あとは、ブラウザから対象サーバのポート 80 にアクセスすると、次の画面が開かれます。「新しいアカウントを登録」をクリックします。
それからユーザ情報を登録していくと、最終的に次のような(どこかで見たような)画面が見えます。「#general」等をクリックすると、いわゆるチャットルームのような操作が可能です。
停止と起動はstop
とstart
です。データはローカルの/data/db
という名称のボリュームを使用しますので、再起動後もそのまま使えます。
$ docker-compose stop
Stopping rkt_rocketchat_1... done
Stopping rkt_mongodb_1... done
$ docker-compose start
Starting rkt_mongodb_1...
Starting rkt_rocketchat_1...
最後にもうこれ以上使わない場合は、停止して削除します(-v
オプションは、ボリュームもまとめて削除するオプションです)
$ docker-compose rm -v
No stopped containers
$ docker-compose stop
Stopping rkt_rocketchat_1... done
Stopping rkt_mongodb_1... done