如何在现有的dockerfile中运行Flask应用程序?我如何让flask运行其他应用程序?

时间:2019-08-01 17:30:23

标签: docker flask

我有一个看起来像这样的docker文件:

FROM python:3.7

WORKDIR /var/<some_project>

ENV PYTHONPATH "${PYTHONPATH}:/var/<some_project>"
ENV FLASK_APP "app/prometheus/__init__.py"

COPY app ./app
COPY sources ./sources
COPY *.py ./
COPY requirements.txt ./

RUN pip3 install -r requirements.txt

ENTRYPOINT ["python", "sources/passport/main.py"]

我需要在某些时候运行flask运行,以查看我在flask中创建的端点(在文件夹app下)。我该怎么做才能将此添加到此dockerfile?

我想我还必须让flask运行另一个main应用程序,因为flask公开了另一个应用程序正在收集的数据。我如何让flask调用其他应用程序并使其在后台运行?

1 个答案:

答案 0 :(得分:1)

我想你不想要那个enrypoint(也许你确实想要它,但是除非它要称为flask本身,否则我想这是一个错误)。

我会这样重写文件:

FROM python:3.7

WORKDIR /var/<some_project>

ENV PYTHONPATH="${PYTHONPATH}:/var/<some_project>"
ENV FLASK_APP="app/prometheus/__init__.py"

COPY requirements.txt ./

RUN pip3 install -r requirements.txt

COPY app ./app
COPY sources ./sources
COPY *.py ./

CMD flask run --host=0.0.0.0

您将需要用实际名称替换/var/<some_project>,并且需要将FLASK_APP设置为绝对路径。

设置了FLASK_APP后,您只需要运行CMD flask run即可。

我还更改了文件副本和pip安装的顺序,以帮助构建缓存。