内容
最近、Dockerを使ってPythonのWebアプリを開発しています。Dockerコンテナを起動して、Flaskのサーバーを起動し、ホストマシンからアクセスできるようにしました。ただし、通常、app.run(host="0.0.0.0", ~~)
のように記述することで、localhostからアクセスできるようになります。
このプロジェクトでは、app.run()
を書く場所がapp.py
とrun.py
の2つあったのですが、app.py
にだけhost="0.0.0.0"
を記述していました。そのため、ホストマシンからアクセスすることができず、問題が発生しました。
最終的に、app.py
とrun.py
の両方にhost="0.0.0.0"
を記述することで、ホストマシンからアクセスできるようになりました。プログラミングを行う際には、細かい部分も見逃さずにチェックすることが大切です。
dockerfile
# ベースイメージを指定
FROM python:3.9
# ワーキングディレクトリを設定
WORKDIR /app
# 必要なパッケージをインストール
RUN pip install flask
# ポート番号を指定
EXPOSE 5000
# アプリケーションを実行
CMD ["flask", "run", "--host=0.0.0.0"]
ディレクトリ構造
本アプリは、じゃんけんアプリを想定。
C:.
│ docker
│ dockerfile
│ run.py
│
└─app
│ app.py
│
├─static
│ choki.png
│ gu.png
│ pa.png
│
├─templates
│ index.html
│ janken.html
│ root.html
│
└─__pycache__
app.cpython-39.pyc
締め
今回の記事を読んでいただき、ありがとうございました。何か質問やコメントがあれば、お気軽にお聞きください。また、次回の記事もお楽しみに!