2012-02-01
Heroku上でJenkinsを動かす
@kiy0taka @ikikko お聞きしたいのですが、herokuでjenkinsは動きますか?調べてたら、きよたかさんの昔のツイートで、それっぽいものがあったので。
2012-02-01 13:09:08 via Echofon to @ikikko
ということで、Heroku上でJenkinsを動かすための手順をメモしておきます。
普通にJenkinsのソースをGitHubから持ってきてHeroku上でビルドしても、OpenJDKのAPTのバグとか、Herokuのファイルサイズの上限とかで失敗してしまいます。なので、必要最低限のソースを使ってPOMをゴニョゴニョしてやれば、Heroku上でビルドできるようになります。
そんな訳で、できたものをGitHub上におきました。
https://github.com/kiy0taka/jenkins-for-heroku
これを使ってcedarスタックに上げてしまえば、とりあえず動きます。
# ビルドに少々時間がかかります。
$ git clone git://github.com/kiy0taka/jenkins-for-heroku.git $ cd jenkins-for-heroku $ heroku create --stack cedar $ git push heroku master
Herokuにデプロイしてからやること
- セキュリティの設定
パブリックなところにJenkinsを置く場合は、必ずセキュリティを有効にしておきましょう。
元にしたJenkinsのソースは1.428で、最新版ではいくつかセキュリティの問題なんかも対応されています。また、Heroku上でビルドするためにデフォルトで入っているプラグインとかも外しているので、このままではあまり役に立ちません。「Jenkinsの管理」から自動でバージョンアップを選んで最新版に置き換えましょう。
- ポーリングするJobを作る
Herokuにデプロイしたアプリケーションはアクセスがないと止まってしまい、アクセスがあると再度、別のインスタンスにデプロイされるようです。再デプロイされたときにJENKINS_HOMEは消えてしまっています。適当なJobを作って、シェルの実行で「curl http://xxxxx.herokuapp.com/」とかして、1時間*1おきぐらいに実行するようにしておけばいいと思います。
その他
Maven Integrationプラグインとかを使ってビルドすると失敗するので、Mavenプロジェクトをビルドするときは「シェルの実行」で、mvnコマンドを叩くようにするといいかと思います。あとは、Safe RestartとかTerminalとかのプラグインを入れておくと何かと捗るかと思います。
まとめ
HerokuでJenkins使うより、CloudBees使った方が幸せになれると思う。
*1:多分、1時間で行けると思います。
- 27 http://t.co/twq0ExWR
- 11 http://www.google.com/search
- 10 http://www.google.co.jp/url?sa=t&rct=j&q=gmail 携帯 送れない&source=web&cd=3&sqi=2&ved=0CEYQFjAC&url=http://d.hatena.ne.jp/kiy0taka/20080817/p1&ei=I38rT4PhCI_KmQWL5oTJDw&usg=AFQjCNH8VmsO9_KrjEwdEOZ
- 9 http://discypus.jp/wiki/?ソフト/Bug Tracking/trac/2012
- 9 http://longurl.org
- 9 http://reader.livedoor.com/reader/
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=jenkins heroku&source=web&cd=1&ved=0CCYQFjAA&url=http://d.hatena.ne.jp/kiy0taka/20120201/1328080314&ei=bmUwT5LpN4WKmQW5pITfBQ&usg=AFQjCNEqqV_bsZMyTZpPIkGgh1Wy5k8_9A&sig2=hU5I4pJZJcFs4CBnPl-vIg
- 8 http://atnd.org/users/15472
- 7 http://htn.to/ehG2iE
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=heroku jenkins&source=web&cd=2&ved=0CCsQFjAB&url=http://d.hatena.ne.jp/kiy0taka/20120201/1328080314&ei=yTwuT-ySAc-cmQXX7Pi4Ag&usg=AFQjCNEqqV_bsZMyTZpPIkGgh1Wy5k8_9A
