加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:24:37 所属栏目:安全 来源:网络整理
导读:我有一个nodejs项目,该项目引用了我编写并由私有github存储库托管的模块. package.json中的依赖项如下所示: "dependencies": { ... other stuff ... "my_module": "git+https://github.com/me/mymodule.git",} 很好,但是我想为该应用程序创建一个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的信息,请参阅文档.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读