SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

社内チャットツール「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
~中略~

次のページ
おわりに

この記事は参考になりましたか?

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

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9189 2016/02/01 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー