Docker npm install --production 不工作

标签 docker npm dockerfile npm-install alpine-linux

我有一个 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 --productionnpm 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/

相关文章:

docker - 不使用命令 "docker run"覆盖 Dockerfile 中的入口点

postgresql - 在 Docker 容器中启动 Postgres

docker - 如何在动态环境中设置 Kafka 安全性和监听器?

linux - 在 docker 中执行命令显示错误的 $PATH

javascript - 运行 npm 全局安装包

node.js - Firebase Functions npm install 总是卡住

docker - Windows上的Docker工具箱卷无法刷新容器上的更改

Docker:如何向容器提供 secret 信息?

mysql - 如何为JIRA和MySQL创建docker-compose

reactjs - 为什么 npm start (在 create-react-app 之后)无法运行?