我有一个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的信息,请参阅文档.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。