如何在包含Angular 4应用程序的Docker容器中“联系”Neo4j螺栓?

一个深奥的问题,所以不是真的期待一个解决scheme,但在这里。

所以我已经开始把所有东西都搬到Docker容器中来准备生产。

我了解如何将我的容器连接到我设置的networking,以便他们可以相互交谈。 所有容器都可以互相通话,所有的都连接到networking等,但是,我的Angular应用程序无法连接到我的Neo4j数据库驱动程序,并且除了无法连接司机。

现在,而不是像下面这样在所有其他dockerized应用程序连接到一个Dockernetworking(其中node_textract是一个容器的名称)的作品:

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

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

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

请注意,我有一个节点dockerized应用程序也使用这个Neo4j,它工作正常,所以这不是一个问题,neo4j容器无法正常工作。

现在,如果我只是做一个普通的'ng服务',并用'localhost'replace上面的'neo4j',它将工作正常…唯一不工作的时候是在Docker容器中。

虽然我不知道发生了什么事情,但是我会怀疑这是罪魁祸首。 有任何想法吗?

如果我正确地理解了你,你试图让你的客户端的AngularJS应用程序说话Neo4J数据库?

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

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