Windowsで開発したTomcatのアプリをwarファイルにして、ubunts12.04を入れたVMからdotcloudにデプロイする。
Tomcatでサーブレットを触ってみたら、dotcloudにTomcatで作ったwebアプリをデプロイしてみたくなって、簡単に出来るだろうと思ってたら意外と苦労しました。
目次
- アプリケーションの作成
- アプリケーションをwarファイルにする
- VMにwarファイルアップロード
- dotcloudにアプリケーション仮作成
- アプリケーションをdotcloudに送信
ディレクトリ作成
まず、ホームディレクトリに「dotcloud/tomcat/first」ってディレクトリを作成します(自分の好きなディレクトリでよいです)
コマンド例
mkdir -p ~/dotcloud/tomcat/first
cd ~/dotcloud/tomcat/first
dotcloudのアプリ作成
「dotcloud create ~」で、dotcloud側にアプリを作成します。
既に作成しているアプリとディレクトリを紐付ける場合は、「dotcloud connect ~」になるのではないかと思います。
コマンド例
dotcloud create first
==> Creating a sandbox application named "first"
==> Application "first" created.
Connect the current directory to "first"? [Y/n]: y
==> Connecting with the application "first"
==> Connected with default push options: --rsync
途中の選択肢はyでいいと思います。
英語の文章をなんとなくみた感じだと、ここのディレクトリと「first」アプリを紐付けちゃうよ?って意味だと思いました。
dotcloud.yml作成
「~/dotcloud/tomcat/first/dotcloud.yml」を作成します。
コマンド
内容
「dotcloud.yml」の内容はこれだけでやりました、
「approot:~」をつけたら上手く出来なかったのですorz
warファイルアップロード
FFFTPで、VMの「~/dotcloud/tomcat/first/」に
Java/Tomcat/サーブレットを作ってみるで作ったアプリのwarファイルをアップロードします。
アップロードしたwarファイルの名前を「ROOT.war」に変更します。「ROOT.war」以外だと上手く行きませんでした…不思議orz
※dotcloudにwarファイルをデプロイすると、通常「
http://first-chapati.dotcloud.com/warファイルの名前/」がアプリのルートディレクトリになるのですが、ファイル名を「ROOT.war」にすると、「warファイルの名前」の部分が不要になる便利な裏ワザみたいです。
warファイルのデプロイ
「dotcloud push」で、warファイルをdotcloudのアプリに向かってプッシュします。
アプリを修正したら、またここのディレクトリに置いてプッシュすればいいみたいです。
$ dotcloud push
==> Pushing code with rsync from "./" to application first
building file list ... done
./
ROOT.war
dotcloud.yml
.dotcloud/
.dotcloud/config
省略
==> Application is live at http://first-chapati.dotcloud.com
最後に表示されたURLにアクセスすると、ちゃんと
Java/Tomcat/サーブレットを作ってみるで作った画面が表示されました。
Tomcatで作成したwebアプリは、Tomcat以外のサーブレットコンテナ(JBoss、Geronimo、Websphere、Jettyなど)でも基本的に動く物らしいです。
dotcloudには、サーブレットコンテナとして「Jetty」が入っているからwarファイルをデプロイ出来るみたいでした。
コメント
最終更新:2013年04月24日 09:07