Docker上でRedmineをすぐに使い始める
はじめに
飛ぶ鳥を落とす勢いのDockerですが、まだまだ本番環境には使うのは怖いです。
今のところは開発用のRedmine動かすのに使うくらいがちょうどよさそうです。
あらかじめ配布されているコンテナイメージを使って素早くDocker上のRedmineを使い始めてみます。
構成
今回はVagrantでCoreOSを立ち上げて、CoreOS上にRedmineのコンテナを立ち上げる構成とします。
Vagrantのインストール
本記事ではVagrantのインストールの詳細は割愛します。
"vagrant インストール" などで検索してみてください。
CoreOSのイメージダウンロード
CoreOSはDockerのホストOSとして必要最小限の機能だけを持った軽量なOSです。
githubにCoreOSのVagrantファイルがあるので落としてきます。
$ git clone https://github.com/coreos/coreos-vagrant/
Vagrantのポートフォワーディング設定
CoreOSを立ち上げる前にVagrantのポートフォワーディングの設定をしておきます。
今回はCoreOSの80番ポートをホストPCの3000番ポートにマッピングしてます。
config.vm.network :forwarded_port, guest: 80, host: 3000
CoreOSの立ち上げ
Vagrantを使ってCoreOSの入っているイメージを立ち上げて、SSHでつなぎます。
$ vagrant up
$ vagrant ssh
SSHでCoreOSにつながるはずです。
Redmine入りコンテナイメージの取得
Redmineがすでにセットアップされているコンテナイメージを配布してくださっている方がいますので、ありがたく使います。
docker pullでコンテナイメージを取得します。
$ docker pull sameersbn/redmine
なお、プロキシの設定が必要な場合は下記の感じで環境変数の設定をしてdockerを再起動してからpullしてください。
$ sudo systemctl set-environment HTTP_PROXY=http://proxy.example.com:8080/ & sudo systemctl stop docker.service & sudo systemctl start docker.service
Redmineコンテナの立ち上げ
取得したコンテナイメージからコンテナを立ち上げます。
$ docker run -d -p 80:80 sameersbn/redmine
なお、-p 80:80というのはCoreOSとRedmineコンテナとの間のポートフォワーディング設定です。
CoreOSの80番にアクセスすると、Redmineコンテナの80番につながります。
Redmineが正常に起動して、ポートフォワードでつながっているか確認します。
wget http://localhost/ --no-proxy
RedmineのトップページっぽいHTMLが取得できたらOKです。
なお、起動しきる前にアクセスすると500エラーが返ってきます。
少し待ってから確かめてみてください。
ブラウザからアクセスしてみる
ホストのPCのブラウザから下記を開いてみてください。
http://localhost:3000/
無事Redmineのログイン画面が表示されたら終了です。
なお、上で2回ポートフォワーディングの設定をしているので、最終的には下記の感じでつながってます。
ホストPC:3000 → CoreOS:80 → Redmine:80
終わりに
ハードウェアをエミュレートするVirtualBoxあたりだと、VMに割り当てたメモリは使ってなくても消費してしまいますが、Dockerなら使っている分のメモリだけ消費します。
なので、より効率的なリソース消費で、何十個も量産的にRedmineを立ち上げられます。
Redmineは開発チームごとにたくさん立てられるのが理想なので、Dockerとの相性がいいと言えるのではないでしょうか。