隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

Redmine in Docker

Redmine in Docker

redmine は便利だが、何も無い所から使える状態まで用意するのは少し手間がかかる。

どうも official の redmine docker image があるようなので簡単にできないか試してみた。

事前準備

docker のインストールは終わっているものとする。

(試した環境は ubuntu 14.04 on vagrant で公式ドキュメント通りにインストール)

イメージ取得

まず必要な docker image を持ってくる。今日の時点で最新を選んだ。

docker pull postgres:9.5.0
docker pull redmine:3.0.7

データ保存場所の作成

次にデータ保存用のディレクトリを予め作成。 *1

mkdir -p ~/redmine-data/redmine
mkdir -p ~/redmine-data/pgdata

起動

docker run -d --name redmine-postgres -v /home/vagrant/redmine-data/pgdata:/var/lib/postgresql/data/pgdata -e PGDATA=/var/lib/postgresql/data/pgdata -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=redmine postgres:9.5.0
docker run -d -p 3000:3000 --name my-redmine -v /home/vagrant/redmine-data/redmine:/usr/src/redmine/files --link redmine-postgres:postgres redmine:3.0.7

データ領域を渡しておかないとコンテナの中にデータが保存されるので、 バージョンアップ等で消えた時に困るはず。 volume オプションで先に作ったディレクトリを使うよう指定している。

volume 周りや name は少し変更しているが、あとは image のドキュメント通り。

これで vm の :3000 にアクセスすると画面が表示されるので、admin/admin でログインできれば構築OK。

データの永続化確認

次にデータが永続化できているか確認。

適当にプロジェクトを作ってから以下のコマンドでコンテナを停止/削除する。

docker stop my-redmine redmine-postgres
docker rm my-redmine redmine-postgres

この後、さっきの起動コマンドをもう一度実行してコンテナを作り直し。

適当に作ったプロジェクトが見えているのでデータの永続化も問題なさそう。

まとめ

公式のイメージなので安心 & 簡単に redmine を構築できる。

plugin 入れる場合は自分で image 作ればいけそうだが、今は必要無いので試していない。

参考

*1:ちなみにこの領域を /vagrant 以下に置こうと思ったが shared folder? の権限の関係で上手くいかなかった。 仮想化関連の問題で間違いなさそうなので深追いせず /home にして回避した。