在 npm 包中使用 docker 容器
Using docker container inside npm package
我正在将 TypeScript 编译器 API 插件实现为独立的 npm
包,它应该遍历 TypeScript 代码并将依赖关系图卸载到 neo4j
数据库中,以便使用 Apoc
API.
甚至可以使用 npm
包中打包为 Docker
容器的第三方软件吗?在这种情况下,最佳做法是什么?
您可以与容器中的数据库或其他进程建立网络连接 运行,就像直接在主机上 运行 一样,或者如果它是一个不同的主机。对于 Neo4j 看起来有 several required connection options 比如一些服务器的 URL 和身份验证信息,但就客户端应用程序而言,如果数据库是 [=27 则完全没有关系=] 在 Docker 或其他地方。
如果数据库 运行 在同一系统的容器中,并且 TypeScript 编译器也不在容器中 运行,并且您没有使用 Docker Toolbox 或其他基于 VM 的 Docker 实现,那么您可以 可能 连接到 neo4j://localhost:7687
;这将要求数据库以 docker run -p 7687:7687
或类似选项启动以发布端口。对于可以使用环境变量或配置文件设置进行配置的东西,这可能是一个合理的默认值。
您的扩展库无法启动数据库本身。如果您可以启动一个 Docker 容器,那么您可以使用绑定挂载和其他容器选项来对整个主机进行 root,并且在许多环境中这合理地需要 sudo
权限。
我正在将 TypeScript 编译器 API 插件实现为独立的 npm
包,它应该遍历 TypeScript 代码并将依赖关系图卸载到 neo4j
数据库中,以便使用 Apoc
API.
甚至可以使用 npm
包中打包为 Docker
容器的第三方软件吗?在这种情况下,最佳做法是什么?
您可以与容器中的数据库或其他进程建立网络连接 运行,就像直接在主机上 运行 一样,或者如果它是一个不同的主机。对于 Neo4j 看起来有 several required connection options 比如一些服务器的 URL 和身份验证信息,但就客户端应用程序而言,如果数据库是 [=27 则完全没有关系=] 在 Docker 或其他地方。
如果数据库 运行 在同一系统的容器中,并且 TypeScript 编译器也不在容器中 运行,并且您没有使用 Docker Toolbox 或其他基于 VM 的 Docker 实现,那么您可以 可能 连接到 neo4j://localhost:7687
;这将要求数据库以 docker run -p 7687:7687
或类似选项启动以发布端口。对于可以使用环境变量或配置文件设置进行配置的东西,这可能是一个合理的默认值。
您的扩展库无法启动数据库本身。如果您可以启动一个 Docker 容器,那么您可以使用绑定挂载和其他容器选项来对整个主机进行 root,并且在许多环境中这合理地需要 sudo
权限。