Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

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

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

 本連載は、コンテナ仮想化技術を使ったアプリケーション実行環境構築プラットフォームである「Docker」をつかって、ソースコードのバージョン管理ツールやコミュニケーションツールなどの開発支援ツールの導入を行う手順をご紹介します。今回は、プロジェクト管理ツール「Redmine」と社内チャットツール「Let's Chat」の実行環境を構築する手順について解説します。

目次

はじめに

 前回は、Dockerを使って、アプリケーション開発の現場でよく利用されている、アプリケーション開発支援ツール「GitLab」と継続的インテグレーションツール「Jenkins」の実行環境を構築する手順を説明しました。

 さらに、チーム開発を成功させるためには、進捗管理やメンバー間の円滑なコミュニケーションが重要になります。今回は、以下の開発支援ツールの実行環境を構築する手順について説明します。

  • プロジェクト管理ツール「Redmine」
  • 社内チャットツール「Let’s Chat」

対象読者

 本記事は、次の方を対象にしています。

  • ネットワークやLinuxの基礎知識がある人
  • Dockerの概要を知っている人
  • Amazon Web ServicesのEC2を利用したことがある人
  • Webシステムをチームで開発している人
  • Dockerをチーム開発に導入してみたい人

プロジェクト管理ツール「Redmine」の構築

 大規模な開発プロジェクトになると、開発メンバー間のタスクの管理や進捗状況の確認、問題が発生したときの対処などを、プロジェクトマネージャやチームリーダが中心になって進めますが、Excelで進捗管理をしている場合なども多くあります。ここでは、Webでプロジェクトを管理できる「Redmine」の実行環境を構築する手順を説明します。

Redmineとは

 Redmineはオープンソースのプロジェクト管理ツールです。タスク管理、進捗管理、情報共有を行うことができます。バグを管理したり、ガントチャートを作成したり、作業時間から工数の管理を行ったりする機能があります。Subversion、CVS、Gitなどのバージョン管理システムと連携できるので、成果物も含めてプロジェクト全体を管理できます。

 RedmineはRuby on Railsで開発されているWebアプリケーションです。初版は2006年にリリースされ、最新版は3.1です。

Redmineの公式サイト
Redmineの公式サイト

Redmine用コンテナの起動

 DockerHubにGitLab用の公式イメージはありませんが、有志によるさまざまなGitLab用のイメージが公開されています。今回はsameersbn/redmineを使って構築します。

 まず、sameersbn/redmineのイメージは以下のURLで公開されています。

sameersbn/redmineのイメージ
sameersbn/redmineのイメージ

 このイメージは、ubuntu:14.04をベースイメージとして環境を構築しています。Dockerfileが公開されていますので、どのような環境が構築されているかの詳細を確認することができます。

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

 Docker Compose用の構成管理ファイルであるdocker-compose.ymlは以下のサイトで公開されています。

 これをつかって、コンテナを起動します。はじめに、Amazon Web Serviceの仮想クラウドサーバEC2のインスタンスを起動します。インスタンスの手順は、前回の連載を参照してください。

 起動したEC2インスタンスにリモートログインしたら、ホームディレクトリに「redmine」という名前の作業ディレクトリを作成します。

リスト1 作業ディレクトリの作成
$ mkdir redmine && cd $_

 次に、docker-compose.ymlを、wgetコマンドを使ってダウンロードします。

リスト2 docker-compose.ymlのダウンロード
$ wget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/docker-compose.yml

$ ls
docker-compose.yml

 ダウンロードしたdocker-compose.ymlを開き、PostgreSQL用コンテナ(postgresqlコンテナ)およびRedmine(redmineコンテナ)の環境変数を自身の環境にあわせて修正します。

PostgreSQL用コンテナの環境変数
環境変数名 設定例 説明
DB_USER redmine DBのユーザ名
DB_PASS password DBのパスワード
DB_NAME redmine_production DBの名前

 同様にRedmine用コンテナの環境変数も修正します。

Redmine用コンテナの環境変数
環境変数名 設定例 説明
TZ Asia/Tokyo タイムゾーン
REDMINE_PORT 80 Redmineのポート
SMTP_ENABLED false メールを利用するかどうか
SMTP_DOMAIN www.example.com メールのドメイン
SMTP_HOST smtp.gmail.com メールサーバのアドレス
SMTP_PORT 587 SMTPのポート番号
SMTP_USER mailer@example.com メールのアカウント
SMTP_PASS password メールのパスワード
SMTP_STARTTLS true STARTTLS(平文の通信プロトコルを暗号化)するかどうか
SMTP_AUTHENTICATION :login SMTP認証のメソッド

 EC2インスタンスの80番ポートにアクセスした際にRedmineにアクセスできるよう、REDMINE_PORTの値を80にします。また、ポートの転送を以下のように修正します。

リスト3 docker-compose.ymlのダウンロード
ports:
  - "80:80"

 修正すると、docker-compose.ymlは次のようになります。

リスト4 docker-compose.ymlのダウンロード
postgresql:
  image: sameersbn/postgresql:9.4-2
  environment:
    - DB_USER=redmine
    - DB_PASS=password
    - DB_NAME=redmine_production
  volumes:
    - /srv/docker/redmine/postgresql:/var/lib/postgresql
redmine:
  image: sameersbn/redmine:3.1.0-2
  links:
    - postgresql:postgresql
  environment:
    - TZ=Asia/Tokyo
    - REDMINE_PORT=80
    - SMTP_ENABLED=false
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=:login
  ports:
    - "80:80"
  volumes:
    - /srv/docker/redmine/redmine:/home/redmine/data

 他の環境変数の設定を行う時は、以下の公式サイトを参照してください。

 docker-compose.yml の用意ができたら、docker-compose upコマンドを実行し、コンテナを起動します。起動すると、Redmineコンテナ、PostgreSQLコンテナの2つのコンテナが起動します。

リスト5 コンテナの起動
$ sudo /usr/local/bin/docker-compose up
Creating redmine_postgresql_1...
Creating redmine_redmine_1...
Attaching to redmine_postgresql_1, redmine_redmine_1
postgresql_1 | | PostgreSQL User: postgres, Password: ec1Aezai6maip0              |
~中略~
redmine_1    | 2015-07-10 06:09:43,906 INFO supervisord started with pid 1
~中略~

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

著者プロフィール

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

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

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

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

バックナンバー

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

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5