【发布时间】:2019-02-16 12:03:27
【问题描述】:
Node.js docker 教程 (https://nodejs.org/en/docs/guides/nodejs-docker-webapp/) 指定应在启动 docker 之前在主机上运行 npm install 以生成 package-lock.json 文件。
npm/node 在宿主机上不可用时如何生成这个文件?
当新的依赖项添加到 package.json 时,应该如何更新 package-lock.json?
npm 指定应该将 package-lock.json 文件签入源代码控制。当 npm install 通过 docker 运行时,它会在容器中生成 package-lock.json 文件——这不是从源代码管理中检出的地方。显而易见的解决方法是在文件更新时将文件从容器复制到主机,但这似乎应该有一个更简单的解决方案。
【问题讨论】:
-
Npm install 将在容器中运行,作为 docker 构建的一部分。
-
在容器中运行的 npm install 会在容器中生成文件 - 将文件复制到主机以将其签入源代码控制是标准做法吗?
-
将锁定文件检查到源代码控制中绝对是标准做法(在我使用过的每个包管理器中都有这个概念,每种语言)。