应该如何为Node.js Docker应用程序生成package-lock.json文件?

时间:2018-09-11 22:47:27

标签: node.js docker

Node.js docker教程(https://nodejs.org/en/docs/guides/nodejs-docker-webapp/)指定在启动docker生成package-lock.json文件之前,应先在主机上运行npm安装。

当主机上没有npm / node时应如何生成此文件?

当新的依赖项添加到package.json时,应该如何更新package-lock.json?

npm指定应将package-lock.json文件签入源代码管理。通过docker运行npm install时,它将在容器中生成package-lock.json文件-不在源控制中检出该文件的位置。显而易见的解决方法是,每当文件更新时将文件从容器复制到主机,但这似乎应该有一个更简单的解决方案。

1 个答案:

答案 0 :(得分:2)

我通常只创建一个临时容器在内部运行npm,而不必在主机上安装node和npm。像这样:

docker run --rm -v "$(pwd)":/data -w /data -it node bash

,然后在bash中运行npm init生成package.json和npm install生成package-lock.json。您可能想要使用-u "$UID"来使文件也由您的主机用户拥有,或者只是在之后对其进行了冠冕。

我做同样的事情来安装新软件包,只是将npm install package安装在临时容器中bash内。