⚙️
Docker + Flask 環境構築
大前提
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などが古いものを使ってないか
参考
Discussion