久しぶりに楽しそうなのがあったので更新です。
dotcloudというherokuの色々な言語版みたいなもんです。DBまで色々使えます。
private beta中みたいです。登録しとけばそのうちメールくると思います。
試しにpython、flaskで動かしてみました。
[bash]
mkvirtualenv –python=/opt/local/bin/python2.7 py27dev
pip install dotcloud
dotcloud
# (API Key入力)
dotcloud create plansettest
dotcloud deploy -t python plansettest.www
# flaskでお試し作成
mkdir plansettest
cd plansettest
pip install flask
vi wsgi.py
pip freeze > requirements.txt
dotcloud push plansettest.www .
[/bash]
wsgi.py
[python]
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
application = app
[/python]
これで http://www.plansettest.dotcloud.com/ デプロイ完了。動いてくれます。
らくちんー!
ついでにmongodbも。
[bash]
dotcloud deploy -t mongodb plansettest.mongo
dotcloud info plansettest.mongo
# config: mongodb_password: のパスワードをコピる。
# あと、サーバー名とポートもあるのでメモっとく。mongodb://root:なんちゃら〜の方ね。
dotcloud run plansettest.mongo mongo
# 3回くらい失敗?した。シェルになるまでがんばる。
> use test
> db.getSisterDB("admin").auth("root", "コピったパスワード");
> db.message.save({"message":"uho"});
> db.message.find()
> db.addUser("username","password");
> exit
pip install pymongo
pip freeze > requirements.txt
vi wsgi.py
[/bash]
wsgi.py
[python]
from flask import Flask, g, abort, redirect, url_for
app = Flask(__name__)
from pymongo import Connection
def connect_db():
try:
connection = Connection("mongo.plansettest.dotcloud.com", 6477)
return connection["test"]
except:
return None
@app.before_request
def before_request():
g.db = connect_db() or abort(500)
g.db.authenticate("username", "password")
@app.route("/")
def hello():
messages = ""
for item in g.db.message.find(limit=10):
messages += item["message"] + "n"
return "Hello World!" + "n" + messages
@app.route("/say/<message>")
def say(message=""):
g.db.message.save({"message": message})
return redirect(url_for("hello"))
if __name__ == "__main__":
app.run()
application = app
[/python]
これでmongodbを使って簡単にデプロイー!