2017-10-21 26 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 

在這之後,我又檢查了我的項目,並創建了一個完美的跑了新鮮的本地圖像。

相關問題