DEVGRU

プログラミングと競馬予想について書きます

bottle.py のアプリケーションを Dockerで動くようにする

Jupyter Notebookで書いたロジックをAPI化するためにbottle.pyを使用したが、それをDockerで動くようにしてサーバにデプロイした。

例えばこんなmain.pyがあり、その横にbottle.pyがあるとする。

main.py

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)

run(host='localhost', port=8080)

そこに、次のようなDockerfileを配置する。

FROM continuumio/anaconda3

MAINTAINER katoken0215

WORKDIR /app

COPY bottle.py /app
COPY requirements.txt /app

RUN pip install -r requirements.txt

COPY main.py /app

CMD ["python3", "main.py"]

配置したらdocker build --tag=my_bottle .

起動にはdocker-composeを使いたいので、 以下を書く。

docker-compose.yml

version: '3'
service:
  my_bottle:
    image: my_bottle

そして、docker-compose up -dで、起動する。 環境変数やその他のDockerコンテナを追加したければ上記に追記して、 再度コマンドを打てば良い。