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コンテナを追加したければ上記に追記して、
再度コマンドを打てば良い。