docker 卷内模板文件的更改未显示在Flask前端

k4ymrczo  于 2023-03-07  发布在  Docker
关注(0)|答案(2)|浏览(100)

我正在使用具有以下配置的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

** Jmeter 板/停靠文件:**

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

** Jmeter 板/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 bashcat /usr/src/app/templates/index.html进入容器,它们反映在容器内部,因为卷在主机和容器之间共享。
如果我停止容器并再次运行它,更改将被应用,但由于我正在处理前端,因此一直这样做非常烦人。
为什么更改不会显示在浏览器上,但它们会复制到容器上?

cgyqldqp

cgyqldqp1#

您应该用途:TEMPLATES_AUTO_RELOAD=True
https://flask.palletsprojects.com/en/2.0.x/config/开始
模板似乎已预加载,在您启用此功能之前不会更新。

30byixjq

30byixjq2#

Dockerfile 中你需要做必要的修改。现在你只处理requirements.txt。

WORKDIR $APP_HOME
COPY . . #you may just add necessary folders too instead coping everything 
RUN pip install --no-cache-dir -r requirements.txt

如果你不喜欢就告诉我!

相关问题