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

Docker运行NestJs样板项目报错,求助问题排查

NestJs样板项目Docker运行错误排查

我使用用于教学的NestJs样板项目,通过Dockerfile运行时出现错误,已通过CLI查看/usr/src/app/package.json,确认存在start:prod脚本,请问问题出在哪里?

错误日志

/usr/bin/env: 'bash\r': No such file or directory

npm ERR! 缺少脚本: "start:prod"

npm ERR! 

npm ERR! 你是不是想输入这个?

npm ERR!     npm run start:prod # 运行"start:prod"包脚本

npm ERR! 

npm ERR! 查看所有脚本,请运行:

npm ERR!   npm run


npm ERR! 本次运行的完整日志可在以下位置查看:

npm ERR!     /root/.npm/_logs/2022-07-20T12_20_18_944Z-debug-0.log

问题原因

  1. Windows换行符(CRLF)冲突:第一个错误/usr/bin/env: 'bash\r': No such file or directory是核心问题。项目文件在Windows环境下编辑过,脚本文件的换行符是\r\n(CRLF),而Linux容器中的bash只能识别\n(LF)换行符,导致bash后面被加上了\r转义字符,系统找不到名为bash\r的命令。
  2. 脚本识别异常:由于换行符问题导致启动命令执行失败,进而让npm误以为package.json中不存在start:prod脚本,出现第二个错误提示。

解决方案

  • 统一文件换行符为LF:
    • 使用VS Code等编辑器,将项目中所有脚本文件(包括package.json、Dockerfile相关脚本)的换行符设置为LF;
    • 在Git中配置自动转换:执行git config --global core.autocrlf false,避免Windows环境下自动将LF转为CRLF。
  • 检查Dockerfile启动命令:确保启动命令为CMD ["npm", "run", "start:prod"]或RUN npm run start:prod,命令中无多余转义字符或换行符。
  • 重新构建镜像:清理Docker缓存后重新构建,执行docker build --no-cache .,确保新的文件被正确复制到容器中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:24:43