尝试运行Docker镜像时,“exec用户进程导致”没有此类文件或目录“”错误

时间:2017-10-21 20:28:43

标签: linux bash docker

我正在尝试运行一个执行.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'。

为什么我收到此错误?

1 个答案:

答案 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

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