CodeZine(コードジン)

特集ページ一覧

Dockerで「Redmine」と「Let’s Chat」を動かしてみよう

Dockerをつかったイマドキのアプリ開発環境構築入門 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/02/01 14:00

目次

社内チャットツール「Let’s Chat」の構築

 「Let’s Chat」はオープンソースのWebチャットツールです。ここでは、Let’s Chatの環境構築について説明します。

Let’s Chatとは

 ベンチャー企業やスタートアップ企業では、SlackやHipChatなどのチャットを使って、開発エンジニア間のコミュニケーションを活発に行っているところもあります。チャットはEメールに比べて即応性もあり、対面での会話に近い、密なコミュニケーションを行うことができます。また、開発プロジェクトが遠隔地に分散している場合などは、チャットが対面での打ち合わせを補完するものとして機能するでしょう。

 そこで、ローカル環境にWebブラウザベースのチャット環境を構築すれば、開発チームメンバー同士が気軽にコミュニケーションを取り合うことができます。

 Let's Chat には以下のような機能があります。

  • 複数のチャットルームを作成可能
  • メンション
  • 画像の埋め込み
  • ファイルアップロード
  • 過去ログの閲覧

 Let’s ChatはSlackのUIによく似た構成で、直感的に操作できます。Let's ChatはNode.js 0.10/MongoDB 2.6/Python 2.7の環境で動作します。

Let’s Chatの公式サイト
Let’s Chatの公式サイト

Let's Chat用コンテナの起動

 Let’s Chatの公式イメージは以下に公開されています。今回はこのsdelements/lets-chatを使って構築します。

sdelements/lets-chatのイメージ
sdelements/lets-chatのイメージ

 Dockerfileが公開されていますので、どのような環境が構築されているかの詳細を確認することができます。

 Let’s Chatのデータを保存するにはMongoDBによるデータベースサーバが必要になります。そのため、Docker Composeを使って、複数のコンテナを同時に稼働させます。

 はじめに、Amazon Web Serviceの仮想クラウドサーバEC2のインスタンスを起動します。インスタンスの手順は、前回の連載を参照してください。なお、EC2インスタンスのスペックによってはMongoDBが起動できない場合もありますので、t2.small以上のものを使ってください。

 EC2インスタンスが起動したら、リモートログインします。EC2のホームディレクトリに「letschat」という名前の作業ディレクトリを作成し、そこにDocker Compose用の構成管理ファイルであるdocker-compose.ymlを以下のように作成します。

リスト6 docker-compose.ymlの作成
$ mkdir letschat && cd $_
$ touch docker-compose.yml
$ ls
docker-compose.yml

 続いて、docker-compose.ymlを次のように記述します。

リスト7 docker-compose.ymlの内容
app:
  image: sdelements/lets-chat
  links:
    - mongo
  ports:
    - 80:8080
    - 5222:5222

mongo:
  image: mongo:latest

 ここでは、Let's Chatを動作させるフロントサーバを「app」という名前、MongoDBによるデータベースサーバを「mongo」という名前でそれぞれコンテナ起動します。

 docker-compose.yml の用意ができたら、docker-compose upコマンドを実行し、コンテナを起動します。起動すると、Let's Chat用コンテナ、MongoDBコンテナの2つのコンテナが起動します。Let's Chat用コンテナは、80番ポートで外部ネットワークと接続します。

リスト8 コンテナの起動
$ sudo /usr/local/bin/docker-compose up
docker@boot2docker:~/letschat$ docker-compose up
Creating letschat_mongo_1...
Creating letschat_app_1...
Attaching to letschat_mongo_1, letschat_app_1
mongo_1 | 2015-07-10T04:30:23.726+0000 I JOURNAL
~中略~
app_1   | > lets-chat@0.4.1 prestart /usr/src/app
~中略~

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Dockerをつかったイマドキのアプリ開発環境構築入門

著者プロフィール

  • WINGSプロジェクト 阿佐 志保(アサ シホ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5