gpt4 book ai didi

docker - 无法使用 Docker 在 Debug模式下运行 Flask 应用程序

转载 作者:行者123 更新时间:2023-12-03 15:53:19 24 4
gpt4 key购买 nike

我正在尝试使用 docker-compose 在 Debug模式下运行一个简单的 flask 应用程序。我已经按如下方式创建了我的 Dockerfile:

FROM jazzdd/alpine-flask

EXPOSE 80

我的 docker-compose 文件如下所示:
version: '2'

networks:
test_network:
driver: bridge

services:
db:
networks:
- test_network
image: postgres:9.5.3
env_file:
- docker.env
expose:
- 5432

app:
networks:
- test_network
build: .
env_file:
- docker.env
expose:
- 80
ports:
- 80:80
volumes:
- ./app/:/app
command: -d

我的 docker.env 只有 postgres 数据库的密码。我创建了一个简单的python文件,如下所示:
  from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
return "Hello, World"

if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0')

现在要运行该应用程序,我正在使用 docker-compose up -d --build命令。我假设在应用程序在服务器上启动后,当我对 app.py 文件进行任何更改时,它将反射(reflect)在网页上,而无需重新启动容器。我没有看到预期的行为。我尝试设置我的本地环境变量 FLASK_DEBUG=1但不确定这是否有帮助。我错过了什么吗?

我也引用了 this页面,但没有看到任何有用的东西。

最佳答案

下面列出了一个示例(简化的) runthru 演示文件编辑,无需重新启动容器,供您引用。

app.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
return "Hello, World"

if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0',port=80)

您需要为 Flask 开发服务器指定端口以匹配暴露的容器端口 80。

screenshot can be viewed here

屏幕截图中的步骤摘要(MAC OS X):
  • 从空目录开始
  • 创建 app.py
  • 码头运行
  • curl localhost(这将显示 Hello, World)
  • 编辑 app.py
  • curl localhost(这应该显示新的编辑)
  • 关于docker - 无法使用 Docker 在 Debug模式下运行 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37799663/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com