这是一个有点深奥的问题,所以并不是真的期待一个解决方案,但现在开始吧。
因此,我已经开始将所有内容移动到Docker容器中,以便为生产做好准备。
我知道如何将我的容器连接到我设置的网络,以便它们可以相互通信。所有容器都可以相互通信,所有容器都连接到网络,等等。然而,我的Angular应用程序无法连接到我的Neo4j数据库驱动程序,除了无法连接到驱动程序之外,任何地方都没有错误。
现在,在连接到Docker网络的所有其他Docker应用程序(其中node_textract是容器的名称)中,不是像下面这样的东西:
this.extractUrl = 'http://node_textract:3000/api/extract';连接到Neo4j驱动程序的行是(其中neo4j是容器):
const uri = 'bolt://neo4j:7687';请注意,我有一个Node dockerized化的应用程序,它也在Neo4j上使用它,它工作得很好,所以这不是neo4j容器不工作的问题。
现在,如果我只做一个常规的'ng serve‘,并将上面的'neo4j’替换为'localhost‘,它会工作得很好……唯一不起作用的时候是在Docker容器中。
虽然我不知道发生了什么,但我怀疑罪魁祸首在某种程度上是“螺栓”。有什么想法吗?
发布于 2017-08-10 19:35:45
如果我理解正确的话,您是想让您的客户端AngularJS应用程序与Neo4J数据库对话吗?
您的客户端JS将无法使用容器名称,而需要将Neo4J容器的端口发布到主机。
如果使用docker run运行容器,则可以添加-p 7687:7687并设置AngularJS以在bolt://127.0.0.1:7687上进行连接
https://stackoverflow.com/questions/45604735
复制相似问题