我正在使用docker-compose具有以下配置的 Flask 實作
碼頭工人撰寫:
version: '3'
services:
dashboard:
build:
context: dashboard/
args:
APP_PORT: "8080"
container_name: dashboard
ports:
- "8080:8080"
restart: unless-stopped
environment:
APP_ENV: "prod"
APP_DEBUG: "False"
APP_PORT: "8080"
volumes:
- ./dashboard/:/usr/src/app
儀表板/Dockerfile:
FROM python:3.7-slim-bullseye
ENV PYTHONUNBUFFERED True
ARG APP_PORT
ENV APP_HOME /usr/src/app
WORKDIR $APP_HOME
COPY requirements.txt ./requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
CMD exec gunicorn --bind :$APP_PORT --workers 1 --threads 8 --timeout 0 main:app
儀表板/main.py:
import os
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
如果我使用 VSCode 對我的主機系統中的檔案應用任何更改,那么index.html當我重繪 頁面時這些更改將不會應用。但是,我嘗試使用docker exec -it dashboard bashand進入容器cat /usr/src/app/templates/index.html,它們反映在容器內,因為卷在主機和容器之間共享。
如果我停止容器并再次運行它,則會應用更改,但是當我在前端作業時,一直這樣做很煩人。
為什么更改不會顯示在瀏覽器上,但會復制到容器上?
uj5u.com熱心網友回復:
你應該使用:TEMPLATES_AUTO_RELOAD=True
來自https://flask.palletsprojects.com/en/2.0.x/config/
模板似乎已預加載,并且在您啟用此功能之前不會更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/438352.html
標籤:Python 码头工人 烧瓶 码头工人撰写 dockerfile
