はじめに
proxy、db、rocketchatと3つの構成でdockerコンテナを構築します。
それぞれのコンテナの構成は次のイメージです。
/var/www/
├proxy(nginx)
├db(mongodb) RocketChatのDBとして利用
├rocketchat rocketchat本体
└hubot チャットボット
nginx 近年のトレンドとなっているWebサーバ。Apacheよりもクライアントの同時大量アクセスに強く、メモリ使用量も少ない。
dockerコンテナのサーバに外部から直接アクセスするのは望ましくないため、nginxをReverseProxyにして運用。
mongodb NoSQLデータベース。rocketchatのリポジトリ。
rocketchat SLACK風OSSチャットサービス。
hubot チャットボット。他のチャットサービスでも利用可能。
複数コンテナを扱うため、コンテナ間の依存関係やネットワークの設定はdocker-composeを導入して解決します。
本稿はdockerとdocker-composeの導入までの手順となります。
準備
AWSのamazon linuxインスタンスで実施しています。
始めに、インストール済みパッケージを更新しておきます。
$ sudo yum update -y
Dockerのインストール
$ sudo yum install docker -y
sudoなしでdockerを実行可能にします。
$ sudo usermod -a -G docker ec2-user
docker-composeのインストール
docker-composeをダウンロードします。
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
実行権限を付与
$ sudo chmod +x /usr/local/bin/docker-compose
docker-composeが実行できることを確認します。
$ docker-compose --version
docker-compose version 1.21.2, build a133471
参考
Amazon ECS における Docker の基本
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/docker-basics.html
Install Docker Compose
https://docs.docker.com/compose/install/#install-compose