当前位置: 首页 > 面试题库 >

在Docker上自动重新加载Flask服务器

嵇财
2023-03-14
问题内容

我希望我的flask服务器检测代码中的更改并自动重新加载。我在docker容器上运行它。每当我更改某些内容时,都必须重新构建容器。我不知道哪里出了问题。这是我第一次使用烧瓶。

这是我的树

├── docker-compose.yml
└── web
    ├── Dockerfile
    ├── app.py
    ├── crawler.py
    └── requirements.txt

和代码(app.py)

from flask import Flask 
import requests
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello Flask!!'

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

和docker-compose

version: '2'
services:

  web:
    build: ./web
    ports:
     - "5000:5000"
    volumes:
     - ./web:/code

请给我一些建议。先感谢您。


问题答案:

如已完成,在调试模式下,Flask支持代码重新加载。问题在于该应用程序正在容器上运行,这使它与正在开发的真实源代码隔离。无论如何,您可以docker- compose.yaml像这样通过卷在正在运行的容器和主机之间共享源:

这里是 docker-compose.yaml

version: "3"
services:
  web:
    build: ./web
    ports: ['5000:5000']
    volumes: ['./web:/app']

在这里Dockerfile

FROM python:alpine

EXPOSE 5000

WORKDIR app

COPY * /app/

RUN pip install -r requirements.txt

CMD python app.py


 类似资料:
  • 问题内容: 我正在研究如何使用Python开发一个不错的Web应用程序。由于我不希望遇到一些高级结构,因此我的选择落在了轻量级的Flask框架上。时间会证明这是否是正确的选择。 因此,现在我已经使用mod_wsgi设置了Apache服务器,并且我的测试站点运行正常。但是,我想通过使我对py或模板文件进行的任何更改自动重新加载网站,从而加快开发流程。我看到站点的.wsgi文件中的任何更改都会导致重新

  • 问题内容: 有没有办法让IPython自动重新加载所有更改的代码?在外壳中执行每行之前,或者在明确要求时失败。我正在使用IPython和SciPy进行很多探索性编程,每当更改模块时都必须手动重新加载每个模块,这是很痛苦的。 问题答案: 对于IPython版本3.1、4.x和5.x 然后,您的模块将默认 自动重新加载 。这是文档: 有一个窍门:当您使用时 忘记 以上 所有 内容时,请尝试:

  • 我们正在使用JBoss Enterprise Application Platform server(即JBoss EAP 6.1)来开发使用Logback进行日志记录的新web应用程序。我们已经使用JBoss EAP好几个月了,一切都很好。此外,正如您所知,您可以在运行时在JBOSS上部署和取消部署应用程序和配置文件(如mail service.xml),也就是说,无需重新启动服务器。 但是,如

  • 我的问题是,如果我想在不重新启动应用程序的情况下加载图像,那么用spring boot和thymeleaf存储图像的最佳实践是什么。现在我可以上传图像,所以我可以在上传的文件夹和数据库中看到它的名字,但是当我刷新页面时,图像没有加载。我正在thymeleaf

  • 问题内容: 我已经在互联网上搜寻了好几个小时了,有很多“有用的”建议……除了问题之外什么也没有。 这就是我,几乎完全是: 在Docker容器中播放框架自动加载 我正在运行Play的最新版本(我认为,不知道如何检查,但下载了<一周前)!具有Java 8的ubuntu docker容器内部的框架,使用以下dockerfile构建: 互联网上的多个来源显示出相同或相似的问题,或多或少得出了相同的结论。我

  • 问题内容: 我正在设置一个简单的图像:包含Riak(一个NoSQL数据库)的图像。该映像以CMD形式启动Riak服务。现在,如果我使用将该程序作为守护程序运行,它将启动Riak进程(我可以在日志中看到它)。但是,它会在几秒钟后自动关闭。如果我使用riak进程未启动运行它(更新:对此的解释,请参见答案)。实际上,根本没有任何服务在运行。我可以使用终端手动启动它,但是我希望Riak自动启动。我认为其他