きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

GitBucketをAzure WebSitesで動かしてみた

昨日のエントリでは、IaaSであるAzure 仮想マシン上に立てたUbuntu にGitBucketを入れて動かしてみました。 単純に仮想マシンで動いているUbuntuなので取り立てて難しいことは何もないですが、どうせならもっと楽に、PaaSで動くと楽ですよね。

AzureはどちらかというとPaaSがウリ*1クラウドです。またAzureのPaaSの一つ、Web Sitesでは、今年の4月くらいからJavaも動くようになりました。

実は昨日、ちょっと試してみた時はうまく動かなかったのですが、今日動かしてみたらさくっと動いたのでちょっと手順を書いてみます。

※最近はまったくJava触っておらず完全にド素人状態なので、突っ込み等あればぜひお願いします。

1.Azure WebSitesを新規に作成する

Azureの管理ポータルにログインし、新しいWebサイトをカスタム作成で作成します。 f:id:kiyokura:20140901214129p:plain

2.構成の変更(Javaの有効化及びVisual Studio Online "monaco"の有効化)

作成したサイトを選択し、構成タブで以下に設定して、保存します。

(スクロール)

f:id:kiyokura:20140901214131p:plain

3.Visual Studio Online でgitbucket.warのアップロード

Visual Studio Online "monaco"を利用せず、FTPなどを利用して行っても構いません

ダッシュボードタブに移動してしばらく待つと、右の[概要]の下に[Visual Studio Onlineでの編集]が表示されるのでクリック。

f:id:kiyokura:20140901214132p:plain

画面左のツリーの[webapps]で右クリックし、[Upload files]を選択

f:id:kiyokura:20140901214133p:plain

gitbucket.warをアップロードします。

※gitbucket.warは昨日の記事にある通り、GitBucketのリポジトリのリリース情報からダウンロードするなどで入手できます。

4.作成したWebサイトにアクセス

ここでいったん、作成したWebサイトにアクセスします。 VS Online monacoのメニューの[Browse Web Site]等から表示できます。

このアクセスはしばらく時間がかかります。おそらくですが、このアクセスのタイミングでTomcatが起動していると思われます。 しばらく待つと、こんな感じの画面が表示されます。

f:id:kiyokura:20140901214134p:plain

5.gitbucket用ディレクトリの作成とweb.xmlを編集

ここで再度、VS Online monacoに戻ります*4

webappsの配下にgitbucket.warが展開されたディレクトリが追加されていることを確認します。

f:id:kiyokura:20140901214135p:plain

適当な場所にgitbucketのデータ等を格納する、gitbucket.homeとするディレクトリを作成しておきます。私は、webappsの直下に.gitbucketという名称で作成してみました*5

f:id:kiyokura:20140901214136p:plain

f:id:kiyokura:20140901214137p:plain

次に、ツリーを展開しながらwebapps/WEB-INF/web.xmlを選択します。 f:id:kiyokura:20140901214138p:plain

末尾あたりにあるgitbucket.homeの設定箇所のコメントを解除し、適当なパス(書き込み権限あるパス)を設定してやります。たとえば、webapps/.gitbucketにする場合はこんな感じです*6

<!--
<context-param>
  <param-name>gitbucket.home</param-name>
  <param-value>PATH_TO_DATADIR</param-value>
</context-param>
-->

<context-param>
  <param-name>gitbucket.home</param-name>
  <param-value>D:\home\site\wwwroot\webapps\.gitbucket</param-value>
</context-param>

6.Webサイトを再起動し、アクセス

Webサイトを再起動します。Tomcatだけ再起動すればいいのでしょうが、この環境でやり方がよくわからなかったので、Webサイトごと再起動しました。 このあと、しばらく待ちます。状況やインスタンスのサイズによりけりかもしれませんが、3-5分くらいかかるかもしれません。

しばらく待ったら、下記のURLにアクセスすると…

http://<作成時に入力したサイト名>.azurewebsites.net/gitbucket

動いてました!! f:id:kiyokura:20140901214139p:plain

まとめ

ということで、Azure WebSitesでGitBucketが動きました。手軽といえば手軽。 パフォーマンス的にどこまで実用に耐えうるかどうかについてはまだ検証できていませんが、とりあえず動かすだけであれば、色々なクラウドサービスと比較しても相当手軽な部類に入るような気がします。 また、Azure WebSitesは制限はあるものの無料で使うこともできるので、お試し程度であれば完全に無料で使うことができます。

もちろん、自分であらかじめweb.xmlを編集してからwarを作る等すればデプロイするだけで動作すると思いますし、TomcatでなくJettyでもさくっとそのまま動くんじゃないかと思います*7

*1:のはず

*2:選択できるバージョンは随時変更になるかもしれません

*3:選択できるバージョンは随時変更になるかもしれません

*4:ここについてもVisual Studio Online "monaco"を利用せず、FTPなどを利用して行っても構いません

*5:セキュリティ的にどうかはちょっと微妙な気がするけど

*6:ローカルのパスについては、kuduのDebug Consoleを使うとわかりやすいと思います

*7:試してないのでわかりませんが、多分