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

Pha*_*kar 6 docker

所以我从 docker hub 中提取了截图图像。

当我运行该映像时,它给出错误:standard_init_linux.go:178: exec user process Caused“no such file or directory”。

大多数在线解决方案只有在之前构建了映像后才显得相关。然而,就我而言,我只是提取了图像。我没有用它做任何事。当我再次拉取图像时,它显示:状态:图像对于 snipsdocker/platform:latest 是最新的

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

PS:我在 RaspberryPi Zero 上使用 docker

Veg*_*ter 0

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

背景

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

如果这种转换发生在将在 Docker 容器内运行的 .sh 文件,Linux 将无法识别 Windows 格式的行尾 (EOL),并将整个文件视为一行。它会导致像standard_init_linux.go:XXX: exec user process引起“no such file or directory”这样的错误

原因

由于以下原因之一,可能会发生 EOL 转换:

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

解决方案

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

git config --global core.autocrlf 输入

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

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