2017-10-21 17 views
1

.shファイルを実行する単純なイメージを実行しようとしていますが、Dockerイメージを実行しようとすると "execユーザープロセスが"そのようなファイルやディレクトリがありません "というエラーが発生しました

standard_init_linux.go:185:

#!/bin/bash 
echo "test" 

I:execのユーザプロセスは、 "そのようなファイルまたはディレクトリ" ここ

が発生することはありません、私のDockerfile

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

test.shですWindows 10でDockerを実行していて、 '/ bin/bash'がexiであることを確認しました容器に入れた。

なぜこのエラーが発生しましたか?

答えて

1

Windows 10でDockerを使用してLinuxコンテナイメージを作成しようとしたときとまったく同じ問題に直面しました。ウィンドウからドッカーイメージにファイルをコピーすると、ファイル形式はdosのものになります。ドッカーイメージ内にコピーする前に、すべてのファイルに対してdos2unixユーティリティを実行する必要があります。

明確にするために、私は自分の経験を共有します。ウィンドウでgitを使って自分のプロジェクトのソースコードをチェックアウトし、画像をローカルにビルドしてLinuxドッカーコンテナを作成しようとしたとき、まったく同じエラーメッセージが表示されました。これはLinuxでgitプロジェクトを作成したためですが、今回はウィンドウでチェックアウトしました。私のデフォルトのgitグローバル設定はチェックアウトでしたWindowsスタイルのコミットUnixスタイル、つまりGitはテキストファイルをチェックアウトするときにLFをCRLFに変換します。テキストファイルをコミットすると、CRLFはLFに変換されます。

これを解決するために、私はWindowsのgitグローバル設定を私がチェックアウトしたいUnixに変更しました。スタイルのUnixスタイルをコミットします。(How to change line-ending settings)この後

git config --global autocrlf input 

、私は再び私のプロジェクトをチェックアウトし、完全に走った地元の新鮮なイメージを作成しました。

関連する問題