はじめに
Windows環境でDockerコンテナを起動すると稀に standard_init_linux.go:211: exec user process caused "no such file or directory"
というエラーに遭遇する。
ベースイメージにalpineを使っている場合の記事はよく見るが今回の件では別の問題だったので共有。ちなみに、alpineの場合はbash
をash
に変更すれば良いらしい。
(コメント、修正等あったらコメントにて教えていだたきたいです)
解決方法
結論から言うと、以下のファイルの改行コードをCRLF
からLF
に変更すれば解決する。
- Dockerfile
- docker-compose.yml
- 1,2で呼び出している
*.sh
ファイル
どうやら改行コードがWindows標準のCRLF
になっているのが原因らしい。
gitコマンドの設定
上記の修正で問題は解決するが、再発防止のために確認すべきポイントがあるので紹介する。
Windowsでgitコマンドを使っていると、git clone
等のコマンドを叩いた時に自動でLF
をCRLF
に自動で変換してくれる場合がある。この場合タイトルのエラーが出るため、自動変換をオフにしたい。
この機能をオフにするには以下のコマンドを叩けば良い。
git config --global core.autocrlf input
autocrlfの細かい挙動については参考3の記事を参照されたい。