はじめに
前回は、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用コンテナの起動
DockerHubにGitLab用の公式イメージはありませんが、有志によるさまざまなGitLab用のイメージが公開されています。今回はsameersbn/redmineを使って構築します。
まず、sameersbn/redmineのイメージは以下のURLで公開されています。
このイメージは、ubuntu:14.04をベースイメージとして環境を構築しています。Dockerfileが公開されていますので、どのような環境が構築されているかの詳細を確認することができます。
Redmineのデータを保存するにはデータベースサーバも必要になります。そのため、Docker Composeを使って、複数のコンテナを同時に稼働させます。
Docker Compose用の構成管理ファイルであるdocker-compose.ymlは以下のサイトで公開されています。
これをつかって、コンテナを起動します。はじめに、Amazon Web Serviceの仮想クラウドサーバEC2のインスタンスを起動します。インスタンスの手順は、前回の連載を参照してください。
起動したEC2インスタンスにリモートログインしたら、ホームディレクトリに「redmine」という名前の作業ディレクトリを作成します。
$ mkdir redmine && cd $_
次に、docker-compose.ymlを、wgetコマンドを使ってダウンロードします。
$ wget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/docker-compose.yml $ ls docker-compose.yml
ダウンロードしたdocker-compose.ymlを開き、PostgreSQL用コンテナ(postgresqlコンテナ)およびRedmine(redmineコンテナ)の環境変数を自身の環境にあわせて修正します。
環境変数名 | 設定例 | 説明 |
---|---|---|
DB_USER | redmine | DBのユーザ名 |
DB_PASS | password | DBのパスワード |
DB_NAME | redmine_production | DBの名前 |
同様に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にします。また、ポートの転送を以下のように修正します。
ports: - "80:80"
修正すると、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つのコンテナが起動します。
$ 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 ~中略~