2015年12月23日水曜日

Dockerオフィシャルのjenkinsコンテナイメージにjenkinsのテストを含める方法

jenkinsのDockerオフィシャルイメージでは、jenkins上で作成したテストがホスト側に保存される仕組みとなっている。
個人でDocker上のjenkinsを使う場合は不都合ない。
しかし、jenkins上で作成したテストも含めてコンテナイメージとして外部へ保存するには不便な仕様となってしまっている。
つまり、テストのファイルは個別にコピーする必要がある。
Docker pullでjenkinsのテストも含めた形でコンテナを起動できると利便性が高い。

DockerfileでVOLUMEの指定を外すだけで、コンテナイメージにテストが含まれる。
こちらに作成した、Dockerfileからコンテナイメージを作る事で利用できます。
(とはいえ、15行のVOLUME /var/jenkins_homeをコメントアウトしただけ。)
手順としては以下の通り。
1)docker buildしてコンテナイメージを作成する。
2)jenkisコンテナ上でテストを作成して、docker commitすればjenkinsのテストを保存できる。
3)このコンテナイメージをdocker registry等にpushする事で、他のdockerからdocker pullするだけでテスト環境が整う。

もちろん、docker hubにテストを含めたコンテナイメージを配置する場合は注意してほしい。
自己責任でお願いします。


なお、jenkinsのテスト項目はどの様な形式で保存されているかは次の書籍にある。
2012年3月6日発行 初版第2刷発行 john Fergusom Smart (著) Sky株式会社 玉川 竜司 (翻訳) P343
13.4.1 Jenkinsのバックアップの基礎
$JENKINS_HOME/var 展開されたWARファイル
$JENKINS_HOME/cashe ダウンロードされたツール
$JENKINS_HOME/tools 展開されたツール

jenkinsはcommitする前にjobを止めた方が精神衛生的にはいい気がします。

0 件のコメント: