Dockerで「Redmine」と「Let’s Chat」を動かしてみよう
Dockerをつかったイマドキのアプリ開発環境構築入門 第3回
本連載は、コンテナ仮想化技術を使ったアプリケーション実行環境構築プラットフォームである「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用コンテナの起動
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 ~中略~
この記事は参考になりましたか?
- Dockerをつかったイマドキのアプリ開発環境構築入門連載記事一覧
-
- Dockerで「Redmine」と「Let’s Chat」を動かしてみよう
- Dockerでソースコードのバージョン管理ツール「GitLab」を動かしてみよう
- Dockerで継続的インテグレーションツール「Jenkins」を動かしてみよう
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、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
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
