質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
uWSGI

uWSGIは、PythonでWebサービスを動かすアプリケーションサーバの一つです。WSGI(Web Server Gateway Interface)アプリケーションコンテナの一種で、WSGIに則ったDjangoやFlaskなどで動かすことができます。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

2471閲覧

【Docker + uWSGI + Nginx + Flask】変更内容が反映されない

190celery

総合スコア5

uWSGI

uWSGIは、PythonでWebサービスを動かすアプリケーションサーバの一つです。WSGI(Web Server Gateway Interface)アプリケーションコンテナの一種で、WSGIに則ったDjangoやFlaskなどで動かすことができます。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2023/02/12 07:51

dockerとflaskの勉強をしているものです。
よろしくお願いいたします。

実現したいこと

・Flask側のソースコードを変更したにもかかわらず、変更内容が反映されません。
・変更内容が即時に反映される方法を模索しています。

前提

・Docker + uWSGI + Nginx + Flask で開発環境を構築しています。
・Dockerコンテナを再起動すると変更内容が反映されます。

dockerファイルの設定方法やflask側の設定方法が間違っているや、
別のツールを入れる必要などございましたら、ご教示いただけると幸いです。

ディレクトリ構造

. ├── docker-compose.yml ├── server │ ├── Dockerfile │ ├── config │ │ └── requirements.txt │ │ └── uwsgi.ini │ └── src │ └── app.py └── nginx ├── Dockerfile └── config └── nginx.conf

ソースコード

・docker-compose.yml

version: '3' services: server: container_name: server build: ./server ports: - "3031:3031" volumes: - ./server:/var/www/app nginx: container_name: nginx build: ./nginx restart: always volumes: - ./nginx/config/nginx.conf:/etc/nginx/nginx.conf depends_on: - server ports: - "8080:80"

・server/Dockerfile

FROM python:3.8-alpine WORKDIR /var/www/app COPY . . RUN apk add gcc build-base linux-headers RUN addgroup -S uwsgi && adduser -S -G uwsgi uwsgi RUN pip install -U pip \ && pip install --no-cache-dir -r /var/www/app/config/requirements.txt CMD ["uwsgi", "--ini", "/var/www/app/config/uwsgi.ini"]

・server/src/app.py

from flask import Flask, redirect, url_for, render_template app = Flask(__name__) @app.get('/') def index(): return 'Hello world' if __name__ == "__main__": app.run(debug=True, host='0.0.0.0')

・server/config/uwsgi.ini

[uwsgi] master = True socket = :3031 chdir = /var/www/app/ wsgi-file = /var/www/app/src/app.py callable = app logto = /var/log/uwsgi.log

試してみたこと

キャッシュの問題かと思い、スーパーキャッシュクリアをしたのですが、
変更は反映されませんでした。

FW/ツールのバージョン

Flask==2.0.3 uwsgi==2.0.20

どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

[server/config/uwsgi.ini]
こちらに"py-autoreload=1"を入れるとオートリロードされますでしょうか?

投稿2023/02/12 11:19

編集2023/02/12 11:20
kirissaki

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

190celery

2023/02/12 12:02

"py-autoreload=1"を入れたらオートリロードされるようになりました。 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問