我有一个看起来像这样的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 run来查看我在flask中创建的端点(在文件夹app下)。我该怎么做才能将此添加到此dockerfile?
我认为我还必须让flask运行其他main应用程序,因为flask公开了其他应用程序正在收集的数据。我如何让flask调用其他应用程序并使其在后台运行?
main
我想你不想要那个入口点(也许你确实想要它,但是除非它要称呼烧瓶本身,否则我想这是一个错误)。
我会这样重写文件:
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一个绝对路径。
/var/<some_project>
FLASK_APP
既然已经FLASK_APP设置,您只需要CMD flask run运行该应用程序即可。
CMD flask run
我还更改了文件副本和pip安装的顺序,以帮助构建缓存。