dotcloudでindex.htmlを表示するまで

HerokuでWebSocketを使ったものを作ろう、と思ってよく考えたらWebSocketサポートしてないのですよね。
ぐぬぬ……と思ってたところにそういえばdotcloudがあったなあと。こっちはWebSocketをサポートしてるのでHeroku以外のPaaSを使うという意味でも使ってみたのでした。


基本的にLog in to Dockerを読んで進めました。というかほぼそのままなのですけど。
環境:OS X 10.7.4

dotcloudコマンドのインストール

dotcloudコマンドをインストールします。herokuコマンドはRuby製でしたが、こちらはPython製のよう。

$ sudo pip install dotcloud

pipがない場合は

$ sudo easy_install pip && sudo pip install dotcloud

で。Linuxの場合も似たような感じですが、最初からeasy_installが入っていない環境もある模様。(Ubuntu Server 12.04とか?)
そういう場合はaptなどで既にpipがあれば(python-pipとか)それを入れて、ないならeasy_installを入れると良いと思います。

APIキーの設定

次にAPIキーの設定をします。dotcloudコマンドを実行するとプロンプトが表示されます。

$ dotcloud
Enter your api key (You can find it at http://www.dotcloud.com/settings):

dotcloudにブラウザでログインし、Settingsを開くと"API Key:"と書いてあるところがあるので、それをコピーしてプロンプトに貼付けます。
APIキーを再度設定したい場合は

$ dotcloud setup

で良いみたい。

ファイルを作ってプッシュする

index.htmlを作り、ホスティングしてもらいます。
mkdirをgit initやhg initで行なった場合、後で行なう手順が変わるようなので、ここではmkdirで。リポジトリ作ったあとコミットしてなかったのが原因で、あとは全く同じだった……orz

$ mkdir helloworld
$ cd helloworld
$ cat <<'EOB' > index.html
<!DOCTYPE html>
<meta charset="utf-8">
<title>Hello, World!</title>
<p>Hello, World!</p>
EOB

これで一応ファイルの作成はおしまい。好きなテキストエディタで作っても良いと思います。
次に、dotcloudの設定ファイル(?)を作ります。

$ cat <<'EOB' > dotcloud.yml
www:
  type: static
EOB

index.htmlを表示してもらうだけなのでstaticを設定するみたいです。他にも設定できる値が多分あるんだと思います。


後はプッシュするだけ。

$ dotcloud create helloworld
$ dotcloud push helloworld
$ dotcloud push helloworld
# upload (path) ssh://dotcloud@uploader.dotcloud.com:443/helloworld
# rsync
(略)
www: (URI)

プッシュに成功すると最後にURIが表示されるので、そこを見に行くとHello, Worldです。


Herokuに負けず劣らず、デプロイはなかなか簡単でした。