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に負けず劣らず、デプロイはなかなか簡単でした。