Jenkins on dotCloud

前回書いた記事のアップデート。jetty をよく理解してなかった orz。シンプルに dotCloud に jenkins.war をデプロイするだけでいけますね。

プロジェクト作成

プロジェクト名を jenkins として作っています。

$ dotcloud create jenkins
$ mkdir jenkins

ディレクトリ階層は以下のように。jenkins.war は jenkins-co.org からダウンロード。

$ tree jenkins/
jenkins/
├── dotcloud.yml
└── webapps
    └── jenkins.war

dotcloud.yml の内容

$ cat jenkins/dotcloud.yml
www:
  type: java
  approot: webapps

まんまデプロイ。

$ dotcloud push jenkins jenkins/

jetty@dotCloud の設定

こっからは dotCloud のインスタンスに ssh アクセスして設定

(更新: user.home ごと書き換える)

$ dotcloud ssh jenkins.www  # ssh でアクセス

ワークスペースを作成する。

$ mkdir jenkins
$ chmod g+w jenkins

後は、jetty の設定~/contexts/ ディレクトリ以下に、以下のような xml を追加。名前は何でもいいけど、とりあえず contexts/jenkins.xml など。書いたのは、パスの設定と JENKINS_HOME の設定だけ。ここで設定するので、ROOT.war とかに変更する必要もなし。

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
  "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
  <Set name="contextPath">/</Set>
  <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set>
  <Call class="java.lang.System" name="setProperty">
    <Arg>JENKINS_HOME</Arg>
    <Arg>/home/dotcloud/jenkins</Arg>
  </Call>
</Configure>

(追記) もしくは user.home ごと設定する。この場合、ワークスペースが /home/dotcloud/.jenkins になるので注意。

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
  "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
  <Set name="contextPath">/</Set>
  <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set>
  <Call class="java.lang.System" name="setProperty">
    <Arg>user.home</Arg>
    <Arg>/home/dotcloud</Arg>
  </Call>
</Configure>

なぜかデプロイの度に contexts/jenkins.xml が消える。。。まーいいや。レッツ CI。

コメント

このブログの人気の投稿

Python から Win32 API 経由で印刷する

財務諸表 (Financial Statements)

Netflix のスケール - オートメーション編