在Docker上自动重新加载烧瓶服务器
我希望我的瓶服务器检测代码中的更改并自动重新加载。 我在Docker容器上运行这个。 每当我改变一些东西的时候,我必须重新build造一个容器。 我不知道哪里错了。 这是我第一次使用烧瓶。
这是我的树
├── 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 – 撰写
version: '2' services: web: build: ./web ports: - "5000:5000" volumes: - ./web:/code
请给我一些build议。 先谢谢你。
在debugging模式下,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
我设法实现瓶子自动重新加载泊坞窗使用docker-compose与以下configuration:
version: "3" services: web: build: ./web entrypoint: - flask - run - --host=0.0.0.0 environment: FLASK_DEBUG: 1 FLASK_APP: ./app.py ports: ['5000:5000'] volumes: ['./web:/app']
您必须在Docker撰写文件中手动指定环境variables和入口点以实现自动重新加载。
- 为什么Docker容器的图片变得如此庞大,同时在UBUNTU 16.04上倚靠python3.6,Virtualenv,Flask,Gunicorn
- 如何用gunicorn和bokeh服务configurationNginx
- Docker Error 2002 SQLAlchemy
- 通过Docker运行Flask和SQLAlchemy应用程序的问题
- 应用程序移至docker工生产环境时,Flask-WTF CSRFvalidation失败
- 如何确定瓶颈请求缓慢的原因?
- 无法使用uwsgi和Docker查看我的简单烧瓶应用程序
- 运行Docker镜像给出:无法从app.py加载configuration
- 从Docker容器内部连接到RDS PostgreSQL数据库时出错