问题描述
我正在将 TypeScript 编译器 API 插件实现为独立的 npm
包,它应该遍历 TypeScript 代码并将依赖关系图卸载到 neo4j
数据库中,以便使用 Apoc
API 进行进一步的图分析。
是否可以从 Docker
包中使用打包为 npm
容器的第三方软件?在这种情况下,最佳做法是什么?
解决方法
您可以建立与容器中运行的数据库或其他进程的网络连接,就像它直接在主机上运行或如果它是不同的主机一样。对于 Neo4j 来说,它似乎有 several required connection options 之类的一些服务器的 URL 和身份验证信息,但就客户端应用程序而言,数据库是否在 Docker 或其他地方运行根本无关紧要。
如果数据库在同一系统上的容器中运行,并且 TypeScript 编译器也没有在容器中运行,并且您没有使用 Docker Toolbox 或其他基于 VM 的 Docker 实现,那么您可以可能连接到Line 177:5: 'unsubFromMessages' is not defined no-undef
;这将要求数据库以 neo4j://localhost:7687
或类似选项启动以发布端口。对于可以使用环境变量或配置文件设置进行配置的内容,这可能是合理的默认值。
您的扩展库无法启动数据库本身。如果您可以启动 Docker 容器,那么您可以使用绑定挂载和其他容器选项来根整个主机,并且在许多环境中,这合理地需要 docker run -p 7687:7687
权限。