【发布时间】:2017-11-23 22:06:39
【问题描述】:
在我的 docker-compose.yml 中,我设置了环境 NODE_ENV
node2:
image: ...
environment:
- "NODE_ENV=production"
我的 Dockerfile,
FROM node:latest
... //all the ususal stuff
CMD ["npm", "start"]
我的 npm,
"scripts": {
"start": "NODE_ENV=development node --inspect ./bin/www"
},
但是当我运行 docker-compose up 时,我发现 nodejs 代码仍然在开发中运行,而不是在生产中。这是为什么呢?
我的第二个问题是,在没有 docker 的情况下运行我的 nodejs 时,即使用npm start,我希望它在开发模式下运行,但在生产模式下运行 docker?
----更新-----
对于我的第一个问题,现在我知道这是我的npm start 覆盖了 docker-composer.yml 中的 NODE_ENV=production,而不是相反。
但是对于我的第二个问题,我仍在寻找一个简单的解决方案。
感谢到目前为止我得到的答案。
【问题讨论】:
-
当您在启动脚本中覆盖
NODE_ENV时,它不应该在development中运行吗? -
也许我错了:$。我原以为 docker-compose.yml 中的环境变量会覆盖 Dockerfile 中的设置。
标签: node.js docker npm docker-compose