⚙️

Docker + Flask 環境構築

2023/03/18に公開

大前提

Docker desktopがinstallされていること!!
そして起動してあること!
versionを最新に!!(この記事は2023/3/18現在)

①ファイル/フォルダの作成

・docker-compose.yml
・Dockerfile
・ /app/app.py
・ /app/requirements.txt

この4つのファイル/フォルダを作成します。

②Dockerfile

Dockerfileに下記コードを記載します。

# pythonのバージョンは任意
FROM python:3.8

WORKDIR /usr/src/app
ENV FLASK_APP=app

COPY /app/requirements.txt ./

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

③docker-compose.yml

docker-compose.ymlに下記コードを記載します。

version: "3"
services:
  app:
    build: .
    ports:
      - "5001:5000"
    container_name: app
    volumes:
      - ./app:/usr/src/app
    command: flask run --host=0.0.0.0

④/app/app.py

/app/app.pyに下記コードを記載します。

# 簡単なindexページの作成を行っています。
from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "index page"

⑤/app/requirements.txt

/app/requirements.txtに下記コードを記載します。

flask==2.0.1

⑥"sudo docker-compose up -d"の実行

"sudo docker-compose up -d"を実行し、PCのパスワードの入力を行うと
http://localhost:5001/ にアクセスすると"index page"と出てきたら成功です!

番外編 うまく立ち上がらない、エラーが出る場合

1、dockerにログインしているか確認する。

→これで上手くいったという声も聞きます。

2、docker desktopの設定を見直す。(アプリの右上の歯車をクリック!)

・ Generalの"Use Docker Compose V2"のチェックを外す。
・ Resourcesの"Proxies"の設定を見直す。
・ Docker Engineの中身を見直す。(下記は私の設定です。)

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": false
  },
  "insecure-registries": [
    "docker.io"
  ]
}

3、ミスはないかを確認する。

  • ファイル/フォルダ名のタイポ(大文字小文字など)
  • ディレクトリの設定が合っているか
  • versionなどが古いものを使ってないか

参考

https://qiita.com/jhorikawa_err/items/fb9c03c0982c29c5b6d5
http://unalus.com/wp/2019/11/22/docker-python-flaskでapiサーバーを構築してみる/
https://qiita.com/kaito_111/items/903c22dd6fa01f8ea7b8
https://gray-code.com/blog/flask-on-docker/
https://amateur-engineer-blog.com/flask-docker-compose/

Discussion