Cloudfoundryで動くもの

前回さくらVPSにCloudfoundryを入れてみたんだけど(あいかわらずuaaは死んでるけどとりあえず動いているので先にすすんでる)

CloudfoundryをさくらVPSにインストール > 一部エラー > 解決 - ありの日記

それで、cloudfoundry.comで動いているバージョンより、この前インストールした独自環境で動いてるバージョンのほうが対応している言語が増えているので、ちょっと試してみた。

cloudfoundry.comでvmc runtimesを見てみる

現状cloudfoundry.comで動くのはJava, Node.js, Rubyくらいらしい。

$ vmc runtimes

+--------+-------------+-----------+
| Name   | Description | Version   |
+--------+-------------+-----------+
| java   | Java 6      | 1.6       |
| node   | Node.js     | 0.4.12    |
| node06 | Node.js     | 0.6.8     |
| ruby18 | Ruby 1.8    | 1.8.7     |
| ruby19 | Ruby 1.9    | 1.9.2p180 |
+--------+-------------+-----------+

独自Cloudfoundryでvmc runtimesを見てみる

この間インストールした環境で動くものを調べてみたら、結構増えてた。

$ vmc runtimes

+--------------+---------------+-----------+
| Name         | Description   | Version   |
+--------------+---------------+-----------+
| python2      | Python 2.6.5  | 2.6.5     |
| node         | Node.js       | 0.4.12    |
| node06       | Node.js       | 0.6.8     |
| ruby18       | Ruby 1.8.7    | 1.8.7     |
| ruby19       | Ruby 1.9.2    | 1.9.2p180 |
| java         | Java 6        | 1.6       |
| erlangR14B02 | Erlang R14B02 | R14B02    |
| php          | PHP 5         | 5.3       |
+--------------+---------------+-----------+
試しにPythonを動かしてみた。

PythonDjangoWSGIというフレームワークが使えるらしい。(ちなみに以下は独自サーバでのvmc frameworksの結果)

$ vmc frameworks

+------------+
| Name       |
+------------+
| django     |
| node       |
| rack       |
| wsgi       |
| rails3     |
| java_web   |
| grails     |
| lift       |
| otp_rebar  |
| php        |
| standalone |
| sinatra    |
| spring     |
+------------+

今回はWSGIを使ってみる。適当なディレクトリを掘ってwsgi.pyというファイルを作っておく↓

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    result = ""
    for param in environ.keys():
        result += "%20s %s\n" % (param,environ[param])
    return result

あとは、いつものようにvmc pushするだけ。

$ vmc push
Would you like to deploy from the current directory? [Yn]: 
Application Name: testpy
Detected a Python WSGI Application, is this correct? [Yn]: 
Application Deployed URL [testpy.YOURDOMAIN.com]: 
Memory reservation (128M, 256M, 512M, 1G, 2G) [64M]: 
How many instances? [1]: 
Bind existing services to 'testpy'? [yN]: 
Create services to bind to 'testpy'? [yN]: 
Would you like to save this configuration? [yN]: 
Creating Application: OK
Uploading Application:
  Checking for available resources: OK
  Packing application: OK
  Uploading (0K): OK   
Push Status: OK
Staging Application 'testpy': OK                                                
Starting Application 'testpy': OK 

これで、testpy.YOURDOMAIN.comにアクセスすると、以下の結果が得られる。なんかPython動いてるっぽい。ちなみにPython全然知らないので、Pythonのことは聞かないで。

HTTP_X_FORWARDED_PROTO http
     SERVER_PROTOCOL HTTP/1.0
     SERVER_SOFTWARE gunicorn/0.14.2
         SCRIPT_NAME 
          wsgi.input <gunicorn.http.body.Body object at 0x1c3bd50>
      REQUEST_METHOD GET
# 以下略