我想从一个docker容器运行一个完整的应用程序,该应用程序有三个组件。 1. neo4j数据库,必须可以通过localhost端口访问,例如bolt端口7687 2.一个必须访问数据库的烧瓶应用程序,并且在localhost端口上提供相同的结果或输出说5000 3.一个Web应用程序页面索引。作为烧瓶应用程序前端的html。这将通过5000端口访问烧瓶应用程序。
我需要前两个组件从同一个容器运行。我把烧瓶应用集装箱化,但无法兼顾运行。
我使用neo4j-community版本和#not neo4j docker镜像。所以为了运行相同,我们必须从neo4j-community / bin文件中执行neo4j start
docker文件如下所述
来自python:3.7
VOLUME ./:app / RUN apt-get update -y RUN apt-get install -y python-pip python-dev build-essential
复制。 /应用/
WORKDIR / app RUN cd neo4j-community-3.5.3 / bin / CMD [“neo4j start”] RUN cd ../../ RUN cd flask_jan_24 / RUN pip install -r requirements.txt
CMD [“flask_jan_24 / app_flask.py”] EXPOSE 5000
问题是你实际上已经在RUN语句中启动了Neo4j(这是构建过程的一部分)。
实际上你应该有一个shell脚本,它必须在后台启动所有必需的服务(比如neo4j或其他任何东西),最后你应该启动实际的flask应用程序。