moxt

Just another Blog site

DockerでRedmineしたい

   

Docker上でRedmineを動作させる

docker-composeがあると便利。
docker-machineも使ってる。
なので、上記のツールはあらかじめインストールしておく。

インストールせずともDocker+Redmineはできるが、だいぶ煩雑になる。
それに、単純にRedmineを動かせるようにするだけなら両ツールを使えば一瞬で完了しちゃう。
インストールしよう。

EC2上にRedmineを作る。

EC2上にDocker環境を構築する

Redmineを構築する

既にDockerでRedmineを構築するためのテンプレートがあるので、感謝しつつ使う。

https://github.com/sameersbn/docker-redmine

使い方もしっかり書かれてるので、そんなに困らないはず。

これだけでRedmineできた。composeすごい。

http://[インスタンスのIPかURL]:10083
で構築したRedmineが見れるはず。

HTTPSを使いたい

デフォルトだとHTTPで通信してる。
オフィスの閉じたネットワーク内でのみ使うのであれば問題ない。
が、自宅や出先でも見たい、となるとHTTPだと困る。
外部の関係者が見ることもありHTTPSのみを使ってRedmineにアクセスできるようにした。

docker-compose.ymlを編集

環境変数REDMINE_PORTとREDMINE_HTTPSをいじる。

.keyと.crtファイルを所定の場所に置く

ここを参考にしつつ。
https://github.com/sameersbn/docker-redmine#ssl

docker-machineのscpコマンドを使って用意したファイルを次のディレクトリ以下に転送する。

/srv/docker/redmine/redmine/certs

下記のスクリプトを見るとファイル名に決まりがあるので従っておく。

https://github.com/sameersbn/docker-redmine/blob/master/entrypoint.sh#L45

無事転送を終えたら、コンテナを再起動する。

HTTPS接続できているか確認する。

Githubと連携したい

けっこう煩雑だった。。

このプラグインを使う。
https://github.com/koppen/redmine_github_hook

プラグインのインストール

ホストにログインしたら…

plugin用のディレクトリを作成してredmine_github_hookをクローンする。

ホストから抜けて…

コンテナを再起動したらインストール完了。

github側の設定

連携用の公開鍵をGithubに登録する

先述のdocker-redmineでRedmineを立てるともれなく鍵がついてくるので、それを利用する。

ホストにログインしたら…

/srv/docker/redmine/redmine/dotfiles/.ssh以下にあるid_rsa.pubをGithubリポジトリのDeploy Keysや管理用アカウントのSSH Keysに登録しておく。

webhookを登録する

連携したいリポジトリのWebhook設定画面でwebhook用のURLを入力する。

こんな感じ。
スクリーンショット 2015-08-07 22.32.19

project_idはredmineで作成したプロジェクトを一意に特定するためのid。
URLを見ればすぐ分かる。

https://[RedmineのURL]/projects/[project_id]

と、なってるので。

コンテナのホストマシン側の設定

リポジトリをクローンする

Redmine側の設定

プロジェクト > 設定 > リポジトリ > 新しいリポジトリ で先ほどクローンしてきたリポジトリを登録する。

スクリーンショット 2015-08-07 22.21.57

こんな感じ。
図を見てもらうと記入されているパスが先ほどクローンしてきたリポジトリのパスと異なっている。

これについてはdocker-compose.yml内に書かれたredmineの定義を見てもらえれば分かる。

このようにしてホストとコンテナ間で同じディレクトリを共有している。
で、Redmineはコンテナなので後者の/home/redmine/dataがルートとなるわけ。

動作確認

CURLなりで実際にwebhookを叩いてみる。

動作してそう(=^・^=)

感想

単純にRedmineを立てて「ウェーイ」ってやるのは簡単。
でも、プラグインを導入しようとするとモノによっては煩雑な手続きが必要になる。
この煩わしいところもなるべく自動化していきたいすね。

 - Docker

336px




336px




  • このエントリーをはてなブックマークに追加
  • follow us in feedly

  関連記事