一尘不染

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

docker

我希望我的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

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


阅读 318

收藏
2020-06-17

共1个答案

一尘不染

如已完成,在调试模式下,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
2020-06-17