如何达到' Neo4j是否在包含Angular 4应用程序的Docker容器中?

时间:2017-08-10 04:52:40

标签: angular docker neo4j

有点深奥的问题,所以并不是真的期待解决方案,但是这里有。

所以我开始将所有东西都移到Docker容器中,为生产做好准备。

我了解如何将我的容器连接到我设置的网络,以便他们可以互相交谈。所有容器都能够相互通信,所有容器都连接到网络等,但是,我的Angular应用程序无法连接到我的Neo4j数据库驱动程序,除了无法执行任何操作外,其他任何地方都没有错误连接到驱动程序。

现在,而不是像以下那样适用于连接到Docker网络的所有其他dockerized应用程序(其中node_textract是容器的名称):

this.extractUrl = 'http://node_textract:3000/api/extract';

连接到Neo4j驱动程序的行是(neo4j是容器):

const uri = 'bolt://neo4j:7687';

请注意,我有一个Node dockerized应用程序也将它用于Neo4j并且工作正常,因此neo4j容器无法正常工作。

现在,如果我只是常规服务'并取代上面的'neo4j'与' localhost'它会工作得很好...它唯一没有工作的时间是在Docker容器内。

虽然我不知道发生了什么事,但我怀疑罪魁祸首是' bolt'某种程度上来说。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您是否试图让客户端AngularJS应用程序与Neo4J数据库通信?

您的客户端JS将无法使用容器名称,而是需要将Neo4J容器的端口发布到主机。

如果您使用docker run来运行容器,则可以添加-p 7687:7687并设置AngularJS以连接bolt://127.0.0.1:7687