我想从一个docker容器中运行整个应用程序,该应用程序包含三个组件。 1. neo4j数据库,必须通过本地主机端口访问,例如bolt端口7687 2.一个必须访问数据库的烧瓶应用程序,并且其结果或输出可以通过本地主机端口访问,例如5000 3.一个Web应用程序页面index.html,它充当flask应用程序的前端。这将通过5000端口访问flask应用程序。
我需要前两个组件从同一个容器运行。 我对烧瓶应用程序进行了容器化,但无法同时运行。
我使用neo4j社区版本,但不使用neo4j docker映像。因此,要执行相同的操作,我们必须从neo4j-community / bin文件开始执行neopj
docker文件如下所述
从python:3.7
VOLUME ./:app/ 运行apt-get update -y 运行apt-get install -y python-pip python-dev build-essential
复制。 / app /
WORKDIR / app 运行cd neo4j-community-3.5.3 / bin / CMD [“ neo4j start”] 运行cd ../../ 运行cd flask_jan_24 / 运行pip install -r requirements.txt
CMD [“ flask_jan_24 / app_flask.py”] 曝光5000
答案 0 :(得分:0)
问题是您实际上已经在RUN语句中启动了Neo4j(这是构建过程的一部分)。
实际上,您应该具有一个Shell脚本,该脚本必须在后台启动所有必需的服务(例如neo4j或其他任何服务),然后最后应该启动实际的flask应用程序。