我正在尝试运行一个执行.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'。
为什么我收到此错误?
答案 0 :(得分:1)
当我尝试在Windows 10上使用Docker创建Linux容器映像时,我遇到了完全相同的问题。当您将文件从Windows复制到docker映像时,文件格式为dos。在将所有文件复制到docker镜像中之前,您可能需要对所有文件运行 dos2unix 实用程序。
为了说清楚,我会分享我的经验。当我在Windows上使用git检查我的项目源代码并尝试通过在本地构建映像来创建Linux docker容器时,我得到了完全相同的错误消息。发生这种情况是因为我在Linux上创建了我的git项目,但这一次,我检查了Windows。我在Windows上的默认git全局配置是结帐Windows风格的提交Unix风格,即Git会在检出文本文件时将LF转换为CRLF。提交文本文件时,CRLF将转换为LF。对于跨平台项目,这是Windows上的推荐设置(" core.autocrlf"设置为" true")
为了解决这个问题,我改变了我的窗户' git global config因为我想检查Unix风格的提交Unix风格。(How to change line-ending settings)
git config --global autocrlf input
在此之后,我再次检查了我的项目并创建了一个完美运行的新鲜本地图像。