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サービス化しました。
- http://jetty.codehaus.org/jetty/ からJettyのバイナリをダウンロードして任意のフォルダに展開します。Jetty7.0以上が推奨されています。
- Jettyが正常に動作するか確認しましょう。Jettyを展開したパスに移動して
java -jar start.jar
を実行します。エラーがでないこと、 http://localhost:8080/ に移動してデモ画面が表示されることを確認しましょう。 - エラーが発生した場合にはJettyを展開したパスの
/logs
ディレクトリに出力されているエラーログを確認して対応してください。 - apache-commons-daemonを利用してJettyをサービス化します。 http://www.apache.org/dist/commons/daemon/binaries/windows/ からバイナリをダウンロードして展開します。
- 展開したディレクトリに存在する
prunsrv.exe
とprunmgr.exe
をJettyのホームディレクトリ直下にコピーします。64bit OSを利用している場合はamd64/prunsrv.exr
を使う点に注意してください。 prunsrv.exe
をコピーしてJettyService.exe
をprunmgr.exe
をコピーしてJettyManager.exe
を作成してください。次のコマンドを実行します
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
prunsrv //TS//JettyService
で正常にサービスが開始するか確認します。
Windowsサービス化したJettyにgitbucketを載せて動かす
- Jettyを展開したディレクトリにある
/webapp
ディレクトリにgitbucket.jarを置くだけです。 - ブランチなどのデータは
C:\gitbucket
に格納されます。
これでgitbucketをサービス化してチーム開発をおこなうことができます。素敵ですね :)