⛳
gunicornとflaskによるDockerでの開発
はじめに
クラウドサービスでコンテナーの検証をすることが多くその際に作ったものを備忘録として残しておきます。
そのため、flask アプリの方の内容は薄いです。あくまでもコンテナーで使用するために作成したものなので、Hello world
のみとなっています。
環境
ローカル環境: Linux(WSL)
Python 3.10.9
Docker version 20.10.21
ディレクトリ
最終的に作成するディレクトリ構成は以下のようになります。
project
├── src
├── Dockerfile
└── requirements.txt # これはなくてもよい
ライブラリインストール
venv環境で行います。そのため、まずは、venv
環境にアクセスします。
python3 -m venv venv
source venv/bin/activate
次にライブラリをインストールします。
pip install gunicorn flask
flask App
src/app.py
の内容は以下のようにします。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return {'message': 'Hello world.'}
Dockerfile
Dockerfile
は以下のようにします。
FROM python:3.10
WORKDIR /app
COPY . .
# requirements.txt
RUN pip install -r requirements.txt
EXPOSE 8000 2222
# 実行コマンド指定
ENTRYPOINT ["gunicorn", "-w", "2", "-b", "0.0.0.0", "src.app:app"]
Run
docker build --tag xxx .
ocker run -d -p 8000:8000 --name xxx -t xxx
おわりに
今回は本当にクラウドのコンテナーサービス等にデプロイする用に作成したアプリを作りました。これを使用して、デプロイ検証などをやっていければと思います。
Discussion