node.js-Nodejs私有模块和Docker容器

我有一个nodejs项目,该项目引用了我编写并由私有github存储库托管的模块. package.json中的依赖项如下所示:

"dependencies": {
    ... other stuff ...
    "my_module": "git+https://github.com/me/mymodule.git",}

很好,但是我想为该应用程序创建一个Docker容器,但是我不想在容器中使用git.我知道我可以通过私有npm存储库托管,但是我很想找到一种方法来让构建过程提取源代码(包括该模块),然后将其复制到容器中.

我在容器中进行npm安装很好,但它不会像git依赖项.另外,我不想在构建机器上进行npm安装,因为我想自由选择我想要的任何容器…我不想构建机器将Windows二进制文件绑定到mongo模块,例如,并将其复制到我的debian容器中.

我考虑的一个选项是将依赖关系放在devDependencies中的“ my_module”上,然后在Docker容器中执行“ npm install –production”,然后复制一个模块.这只是与devDependencies的意图不一致.

任何更好/推荐的解决方案?如果有更好的方法,我愿意不将模块托管在github中(但我在一些仅对该客户端有意义的项目中使用了该模块).

最佳答案
有一个很简单的解决方案.构建节点应用程序

npm安装等

然后在dockerfile中包含COPY命令,告诉它节点项目的安装目录在哪里,以及要将其复制到的位置.

编辑:

要解决@angelok带来的问题,一旦将npm rebuild复制到docker映像中,就应该使用npm rebuild,以便它相对于Docker映像的操作系统(而不是最初安装节点软件包的操作系统)具有正确的依赖性.有关重建here的信息,请参阅文档.

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...