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

Docker容器启动时dumb-init崩溃报No such file错误咨询

Docker run.sh脚本No such file报错排查方案

最高概率根因(匹配你当前报错特征)

你遇到的: No such file or directory(报错前缀为空)90%由脚本行尾符格式错误导致:
如果在Windows环境下编辑run.sh,默认使用CRLF(\r\n)作为换行符,而Linux内核仅识别LF(\n)换行。会导致shebang行末尾被附加不可见的\r字符,系统实际尝试解析的解释器路径变为/bin/bash\r,自然会触发文件不存在报错。

  • 验证方法:进入容器交互模式后,在脚本存放目录执行cat -A run.sh,如果行尾显示^M$即可确认是该问题
  • 修复方法:执行dos2unix run.sh转换行尾符,或在代码编辑器中指定脚本使用LF换行格式后重新构建镜像

其他常见排查方向

  • 检查脚本可执行权限:执行ls -l run.sh确认文件有可执行(x)权限,无权限则执行chmod +x run.sh修复
  • 验证shebang路径有效性:手动执行/usr/local/bin/dumb-init /bin/bash -c "echo test",确认dumb-init可正常调用bash启动子进程
  • 排查脚本隐藏字符:执行od -c run.sh查看脚本二进制内容,确认没有额外的乱码或控制字符

进阶定位方法

如果以上排查无结果,可通过strace跟踪系统调用直接定位缺失文件:
先在容器内安装strace工具,执行strace -f ./run.sh 2>&1 | grep ENOENT,输出结果会明确显示调用哪个路径时返回了文件不存在的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:18:04