有点深奥的问题,所以并不是真的期待解决方案,但是这里有。
所以我开始将所有东西都移到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'某种程度上来说。有什么想法吗?
答案 0 :(得分:3)
如果我理解正确,您是否试图让客户端AngularJS应用程序与Neo4J数据库通信?
您的客户端JS将无法使用容器名称,而是需要将Neo4J容器的端口发布到主机。
如果您使用docker run
来运行容器,则可以添加-p 7687:7687
并设置AngularJS以连接bolt://127.0.0.1:7687