jenkinsでJENKINS_HOME
を変更するのは、以下の3つの方法があるのは周知の通りです。
1.Webコンテナの管理ツールから環境エントリJENKINS_HOMEを設定すること。
2.Webコンテナを起動する前に,環境変数JENKINS_HOMEを設定すること。
3.(推奨しない)Jenkins.war(または,Webコンテナで展開されたJenkinsディレクトリ)のweb.xmlを更新すること。
いつもは1か2で行なうのですが、同一コンテナ内でjenkinsを複数分けて起動する必要があったため、今回は3の方法でJENKINS_HOME
を書き換えました。
その際にちょっとハマったので、共有しておきます。
warファイルなので、基本的にはunzip
なりjar xvf
で溶かした後、再度固めれば問題ありません。
面倒ならばjar uvf jenkins.war WEB-INF/web.xml
で置き換えても良いでしょう。
但し単純に固め直しても、こんなエラーが出てしまいます。
java.lang.SecurityException: SHA1 digest error for WEB-INF/web.xml
これは署名の検証が行なわれて編修された事によりSHA-Digestがずれてエラーになっています。
そのため、参考サイトを参照して署名のチェックを外すために以下のように作業しました。
# 解凍
jar xvf jenkins.war
# web.xmlにJENKINS_HOMEを記載
vim WEB-INF/web.xml
# デジタル署名を削除
rm -rf META-INF/JENKINS.*
# 再度war化
jar cvf jenkins.war .
あとは、これをデプロイすれば同一コンテナでも異なるJENKINS_HOME
を参照する事が出来ます。
# 気軽にupdateできない...
以上です。