You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于NODE_ENV为npm脚本中的docker-compose配置条件detach模式

实现方案

docker-compose up的-d后台运行参数属于命令行执行参数,无法在Dockerfile、docker-compose.yml配置文件中静态声明,只能在执行命令时通过环境变量判断动态拼接参数。你现有的Dockerfile启动逻辑、docker-compose.yml配置无需调整,保持原样即可。

具体修改步骤

  • 修改package.json中的start脚本,替换原有配置即可:
"start": "if [ \"$NODE_ENV\" = \"production\" ]; then docker-compose up --build --force-recreate -d api; else docker-compose up --build --force-recreate api; fi"

以上脚本默认适配Linux/macOS终端、Windows Git Bash/WSL环境。如果需要兼容Windows原生CMD/PowerShell,可以将判断逻辑分别写入独立的.sh/.bat脚本,再在start字段中调用对应平台的脚本即可。

效果验证

  1. 当NODE_ENV=dev时执行npm start,会以前台模式启动容器,运行nodemon app.js,可直接在控制台查看实时日志
  2. 当NODE_ENV=production时执行npm start,会自动拼接-d参数以后台模式启动容器,运行node app.js

小提示:如果你不想每次手动设置环境变量,可以将NODE_ENV=xxx写入项目根目录的.env文件,启动时会自动读取生效。

内容的提问来源于stack exchange,提问作者HRK44

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 18:06:04