gitbucketを Jetty, Windows7 でサービス化する

gitbucketをサービス化して使いたい

gitbucket 便利ですよね。ちょうどいま始めようとしている小さなプロジェクトがあるので、チームの共有リポジトリとしてさっそく使い始めています。 で、最初にちょっとこまったのが「サービス化どうするか」という部分。

現在のgitbucket 1.6は以下のコマンドで簡単に起動できるようななったため、

java -jar bitbucket.jar

「やってみた」系の記事もjavaコマンドで実行するものばかり。 サービス化しての運用を考えている記事はあまり見当たりません。

実際の運用を考えるとサービス化したい&&諸事情でサーバーがWindowsなので、JettyをWindowsサービス化してgitbucketを載せて動かすことにしました。 この記事は以下のことをした記録メモです。

  • JettyをWindowsサービス化する
  • Windowsサービス化したJettyにgitbucketを載せて動かす

JettyをWindowsサービス化する

こちらの記事を参考にしてJettyをWindowsサービス化しました。

  1. http://jetty.codehaus.org/jetty/ からJettyのバイナリをダウンロードして任意のフォルダに展開します。Jetty7.0以上が推奨されています。
  2. Jettyが正常に動作するか確認しましょう。Jettyを展開したパスに移動して java -jar start.jar を実行します。エラーがでないこと、 http://localhost:8080/ に移動してデモ画面が表示されることを確認しましょう。
  3. エラーが発生した場合にはJettyを展開したパスの /logs ディレクトリに出力されているエラーログを確認して対応してください。
  4. apache-commons-daemonを利用してJettyをサービス化します。 http://www.apache.org/dist/commons/daemon/binaries/windows/ からバイナリをダウンロードして展開します。
  5. 展開したディレクトリに存在する prunsrv.exeprunmgr.exe をJettyのホームディレクトリ直下にコピーします。64bit OSを利用している場合は amd64/prunsrv.exr を使う点に注意してください。
  6. prunsrv.exe をコピーして JettyService.exeprunmgr.exe をコピーして JettyManager.exe を作成してください。
  7. 次のコマンドを実行します

    set JETTY_HOME=[your jetty install directory]

    prunsrv //IS//JettyService --DisplayName="Jetty Service" --Install=%JETTY_HOME%\JettyService.exe --LogPath=%JETTY_HOME%\logs --LogLevel=Debug --StdOutput=auto --StdError=auto --StartMode=Java --StopMode=Java --Jvm=auto --Startup=auto --JvmMx=512 --StartPath=%JETTY_HOME% ++JvmOptions=-XX:MaxPermSize=128m --Classpath=%JETTY_HOME%\start.jar --StartClass=org.eclipse.jetty.start.Main --StopClass=org.eclipse.jetty.start.Main ++StopParams=--stop ++JvmOptions=-Djetty.home=%JETTY_HOME% ++JvmOptions=-Djetty.port=8080 ++JvmOptions=-DSTOP.PORT=8079 ++JvmOptions=-DSTOP.KEY=jetty ++JvmOptions=-Djetty.logs=%JETTY_HOME%\logs ++JvmOptions=-Dfile.encoding=UTF8 ++JvmOptions=-Dorg.mortbay.jetty.Request.maxFormContentSize=1000000

  8. prunsrv //TS//JettyService で正常にサービスが開始するか確認します。

Windowsサービス化したJettyにgitbucketを載せて動かす

  1. Jettyを展開したディレクトリにある /webapp ディレクトリにgitbucket.jarを置くだけです。
  2. ブランチなどのデータは C:\gitbucket に格納されます。

これでgitbucketをサービス化してチーム開発をおこなうことができます。素敵ですね :)