はじめに
こんにちは。リューさんです。この記事ではタイトルの通り、DockerでFlaskの開発環境を構築する手順を紹介していきます。Flaskの公式サイトはこちらです。
1. プロジェクトディレクトリを作成する
まず、PC上にプロジェクトディレクトリを作成します。mkdirコマンドを使うか、GUIで作成しても構いません。名前は適当で大丈夫です。今回はtestdirとでもしておきます。
次に、そのディレクトリ内にPythonファイルを作成し、以下のように記述します。この名前はapp.pyとしておきます。別の名前にしても大丈夫ですが、この後使用するので注意してください。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=8000)
このファイルの詳細な説明はまた別の記事に書こうと思いますが、Dockerを利用して環境構築をする際にはファイル末尾の、”app.run(debug=True, host=’0.0.0.0′, port=8000)“という記述を忘れないようにしてください。portの部分は変えても大丈夫ですが、host=’0.0.0.0′が無いとアクセスすることができません。
ちなみに、Flaskのデフォルトポートは5000番らしいです。
2. requirements.txtを作成する
requirements.txtを1で作成したプロジェクトディレクトリ内に作成します。以下のように記述してください。
flask
このファイルでインストールするパッケージを管理します。
3. Dockerfileを作成する
2.と同様に、プロジェクトディレクトリにDockerfileという名称のファイルを作成します。Dockerfileには以下のように記述してください。
FROM python:3.9-alpine
ADD . /code
WORKDIR /code
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
今回はpython3.9のイメージを使います。ファイル末尾のCMD [“python”, “app.py”]の”app.py”は1.で作成したpythonのファイル名に置き換えてください。
4. docker-compose.ymlを作成する
docker-compose.ymlというファイルをプロジェクトディレクトリ内に作成し、以下のように記述してください。
version: '3'
services:
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/code
5. 実行する
プロジェクトディレクトリ上で以下のコマンドを実行してください。コンテナが作成されるはずです。
docker-compose up -d
もしこの時にエラーが出て、requirements.txtなどを修正した場合、上のコマンドを打ち直しても変更されません。そのような場合は、以下のようなコマンドを実行しましょう。
docker-compose build
docker-compose up -d
無事コンテナが作成されたら、docker-machine ip [マシン名]で仮想マシンのipアドレスを取得し、ブラウザ上で
“http://[取得したipアドレス]:8000”にアクセスしてください。マシン名は特に変更してない場合、defaultという名前になっているはずです。
アクセスできたら、app.pyで指定した通りhello world!が表示されていると思います。そうなれば成功です!
おわりに
この記事では、Dockerを利用してFlaskの環境構築を行う手順を紹介しました。使用したOSはWindows10ですが、マック等もそこまで変わらないはずです。
「動かない」「この部分は間違っている」等ご意見ありましたら、僕のTwitter(@Ryu_programs)までご連絡いただければ幸いです。