PythonOnDocker

Pythonで最低限の応答をするコンテナを作る

Flask編

下記のようなindex.pyとかを作ります。0.0.0.0にしないと外部からアクセスできません。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello Flask!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

Dockerfile

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install flask
CMD python ./index.py
$ docker build -t flask_example .
$ docker run -d -p 5000:5000 flask_example

http://myserver:5000/ でアクセスできた。

Juno編

下記のようなindex.pyとかを作って。。

#!/usr/bin/env python
# encoding:utf-8
from juno import *

@route('/')
def index(web):
    return 'Hello, Juno!'

@route('/hello')
def index(web):
    return 'Hello!'
run()

Dockerfileは下記。

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install SQLAlchemy Jinja2 Mako Werkzeug
RUN easy_install juno
CMD python ./index.py

なんかjunoはpipだとこけた。

$ docker build -t juno .
$ docker run -d -p 8000:8000 juno

junoのデフォルトポートは8000みたい。 http://myserver:8000/ でアクセスできた。404.htmlがないとかfaviconがないとかいろいろ言われるがまあそれは必要に応じて。