我有一个 dockerfile,我在其中使用 alpine-nodejs 版本 16 作为基础镜像。 npm 版本为 8。
在docker build
的同时执行npm install --production
这一步时,也会安装package.json的dev-dependencies下列出的依赖,相反生产标志的用例。
我还使用了 npm install --only=production
但这似乎也不起作用。
对于 alpine nodejs 版本 14,该标志按预期工作并且开发依赖项未安装到容器中。 alpine 节点版本 16 图像有问题吗?谢谢。
最佳答案
我怀疑您的 Dockerfile
可能有类似 COPY 的内容。 .
但您没有正确设置 .dockerignore
,例如您没有将 node_modules
添加到您的 .dockerignore
(查看 COPY with docker but with exclusion 了解有关 .dockerignore
的更多信息)
我也犯了同样的错误,应该与nodejs14或nodejs16无关
顺便说一句,npm install --only=prod[uction]
是 npm 6.x format并且 npm install --production
是 npm 8.x format .一个区别是在 npm 8.x 中,如果您设置 NODE_ENV production
npm 8.x 将仅安装依赖项,即使您运行 npm install
但对于 npm6.x npm install --only
将忽略 NODE_ENV
关于Docker npm install --production 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71116358/