我有一个看起来像这样的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调用其他应用程序并使其在后台运行?
答案 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安装的顺序,以帮助构建缓存。