Docker Composeでflask開発環境構築

2021.09.03
2024.03.24
Docker
Docker ComposeflaskPython

はじめに

flaskの開発環境をDockerで構築していきます。

Dockerfileでflaskアプリが実行されるコンテナイメージを用意し、Docker Composeで実行します。

Dockerについては下記を参考してください。

unknown link

Docker Composeについては下記を参考にしてください。

unknown link

flaskアプリ作成

まずはflaskのアプリを作成します。

flaskについては下記で解説しています。

unknown link

まずはapp.pyにシンプルなアプリの実装をします。

app.py
1from flask import Flask
2
3app = Flask(__name__)
4
5
6@app.route("/")
7def index():
8    return "index page"

必要なライブラリをrequirements.txtに記載しておきます。

requirements.txt
1flask==2.0.1

以下のディレクトリ構成になります。

1.
2└── app
3    ├── app.py
4    └── requirements.txt

Dockerfile作成

次にflaskアプリを実行するコンテナイメージの元となるDockerfileを作成します。

Pythonの公式イメージを利用して、FLASK_APPの環境変数の設定とライブラリのインストールをしています。

1FROM python:3.9.7-slim-buster
2
3WORKDIR /usr/src/app
4ENV FLASK_APP=app
5
6COPY /app/requirements.txt ./
7
8RUN pip install --upgrade pip
9RUN pip install -r requirements.txt

Docker

docker-compose.yml作成

続いて、docker-compose.ymlを作成します。

flaskアプリを実行するときに--host=0.0.0.0オプションを付けないとコンテナのアプリにアクセスできなくなります。

1version: "3"
2services:
3  app:
4    build: .
5    ports:
6      - "5000:5000"
7    container_name: app
8    volumes:
9      - ./app:/usr/src/app
10    command: flask run --host=0.0.0.0

最終的に以下のようなディレクトリ構成になります。

1.
2├── app
3│   ├── app.py
4│   └── requirements.txt
5├── Dockerfile
6└── docker-compose.yml

コンテナ実行

必要なファイルの準備が完了したので、コンテナを実行します。

1docker-compose up -d

localhost:5000にアクセスするとアプリを確認することができます。

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee