standard_init_linux.go:178:exec用户进程导致“没有这样的文件或目录”

时间:2017-06-28 10:47:52

标签: docker

所以我从码头中心拉出了剪辑图片。

当我运行图像时,它会给我错误: standard_init_linux.go:178:exec用户进程导致“没有这样的文件或目录”。

大多数在线解决方案只有在以前构建过图像时才具有相关性。但是,在我的情况下,我只是拉了图像。我没有做任何事情。当我再次拉动图像时,它说: 状态:图像是snipsdocker / platform的最新版本:最新

我有点缺乏经验,所以我不知道发生了什么 有人可以帮忙吗?

PS:我在RaspberryPi Zero上使用docker

1 个答案:

答案 0 :(得分:0)

  

注意:如果使用Windows,则此答案适用。

背景

出现此问题的原因之一是文件中的行尾在某些时候已从Unix格式(LF)转换为Windows格式(CR LF)。

如果将这种转换发生在将在Docker容器中运行的.sh文件中,则Linux将无法识别Windows的行尾(EOL)格式,并将整个文件视为一行。它将导致类似 standard_init_linux.go:XXX的错误:exec用户进程导致“没有这样的文件或目录”

原因

可能发生EOL转换,因为以下原因之一:

  • 您的本地Git配置为在您git pull来源时自动将行尾转换为Windows格式(autocrlf = true)
  • 您在Windows的某个编辑器中保存了一个文件,因此文件的行尾以CR LF
  • 保存。

解决方案

  • 作为快速解决方案,您可以在Notepad ++中打开文件,进入菜单Edit / EOL Conversion / Unix,然后保存文件
  • 另一个快速修复:使用CLI工具dos2unix从命令行转换文件
  • 通过关闭自动转换为Windows EOL格式来更改git配置:
  

git config --global core.autocrlf输入

它将全局更改设置,针对计算机上的所有存储库

您也可以每个存储库进行设置。 有关更多详细信息,请参见https://help.github.com/articles/dealing-with-line-endings/