尝试运行Docker镜像时,得到“exec用户进程导致”没有这样的文件或目录“”错误

我试图运行一个简单的图像,执行.sh文件,但我得到这个错误。

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

这是我的Dockerfile

FROM python:2 ADD . . CMD ["./test.sh"] 

test.sh

 #!/bin/bash echo "test" 

我在Windows 10中运行Docker,并且已经在容器中检查了“/ bin / bash”。

为什么我得到这个错误?

当我尝试在Windows 10上使用Docker创buildLinux容器映像时,我遇到了完全相同的问题。当您将文件从Windows复制到docker映像时,文件格式是dos。 您可能需要先在所有文件上运行dos2unix实用程序,然后再将它们复制到docker镜像中。

为了说清楚,我会分享我的经验。 当我在Windows上使用git检出我的项目源代码并尝试通过在本地构build映像来创build一个linux docker容器时,我得到了完全相同的错误消息。 发生这种事是因为我在Linux上创build了我的git项目,但是这次我在Windows上检查了一下。 我在windows上默认的git全局configuration是checkout Windows风格的提交Unix风格,也就是说,在检出文本文件时,Git会将LF转换为CRLF。 提交文本文件时,CRLF将被转换为LF。 对于跨平台项目,这是Windows上推荐的设置(“core.autocrlf”设置为“true”)

为了解决这个问题,我改变了我的windows'git全局configuration,因为我想结算Unix风格的提交Unix风格( 如何更改行结束设置 )

 git config --global autocrlf input 

在此之后,我再次检查了我的项目,并创build了一个完美运行的新的本地图像。