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

Docker运行报错standard_init_linux.go:228 no such file or directory问题咨询

问题原因与解决方法

核心报错诱因

你遇到的standard_init_linux.go:228: exec user process caused: no such file or directory报错,且未触发entrypoint.sh内的参数校验逻辑,最常见的原因有三类,按优先级排查:

  • 脚本换行符格式错误:如果你是在Windows环境下编辑的entrypoint.sh,文件默认是Windows CRLF换行符格式,Linux系统的bash解释器无法识别该格式,会直接抛出文件不存在的错误,不会执行脚本内的任何代码,和你遇到的现象完全吻合。
    解决方法:用编辑器打开entrypoint.sh,将换行符格式修改为Linux LF格式,重新构建镜像即可。
  • 构建上下文路径错误:你执行docker-compose build或者docker build命令时,必须在项目根目录(即Dockerfile、docker-compose.yml、entrypoint.sh三个文件同目录的位置)执行,否则构建过程无法找到根目录下的entrypoint.sh,导致文件没有被复制到镜像内。
  • 镜像内文件缺失/权限异常:构建镜像后可以执行以下命令验证文件是否正常存在:
    docker run --rm --entrypoint bash 你的镜像名 -c "ls -l /app/entrypoint.sh"
    
    如果输出无该文件,说明COPY步骤执行失败,检查Dockerfile路径配置;如果文件存在但无执行权限,检查RUN chmod +x entrypoint.sh步骤是否正常执行。

关于entrypoint.sh存放位置的疑问

不需要将entrypoint.sh放到/bin/Debug/net5.0目录下。你的Dockerfile中已经单独配置了COPY entrypoint.sh ./命令,只要构建上下文根目录存在该文件,就会被独立复制到镜像的/app目录下。
Visual Studio中的「复制到输出目录」属性仅控制本地编译时是否将文件复制到bin输出目录,和Docker构建过程的COPY逻辑无关,不需要修改该配置。

可选优化

可以将entrypoint.sh开头的解释器声明替换为#!/bin/sh,兼容性更强,避免部分精简镜像无bash安装的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:24:03