2017-10-21 27 views
1

我试图运行一个执行.sh文件的简单映像,但出现此错误。尝试运行Docker时得到“exec用户进程导致”没有这样的文件或目录“”错误

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'是exi放在容器里。

为什么我得到这个错误?

回答

1

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

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

为了解决这个问题,我改变了我的windows'git全局配置,风格提交Unix风格。(How to change line-ending settings

git config --global autocrlf input 

在这之后,我又检查了我的项目,并创建了一个完美的跑了新鲜的本地图像。

相关问题