副業先でdocker-compose up -d
をすると、なぜか次のエラーが発生しました。
standard_init_linux.go:228: exec user process caused: no such file or directory ERROR: 1
原因としては、Dockerfile
のENTRYPOINTであったシェルの改行コードがCRLF
になっていたせいで、指定していたexec "$@"
をうまく展開できなかったことが原因です。
今回の記事では、同様の事象が起こらないようにブログの読者に注意喚起する記事です。
環境
- Windows
対処
Gitからチェックアウトする際に改行コードを変更しないようにします。次の設定をすることで、チェックアウト時に改行コードを変更せずに、プッシュ時にCRLFからLFに変更します。
git config --global core.autocrlf input
詳しい挙動は次の記事を参考にしてください。
終わりに
おそらく、Windows上で環境構築している場合はCRLFでも問題ないと思われます。
しかし、ここ最近ではDockerを使用した環境構築が流行っています。必然的にLinux環境上で動かすことになりますので、改行コードがCRLFだと適切な挙動が期待できません。Windowsユーザで私の記事を見た人は、すぐにGitの改行コードの設定を変更しましょう。
本来ならWindowsで開発する人はもっと早くハマる内容だったんでしょうね…。知る機会を得られてよかったです。
ちなみに、この原因にたどり着くまでに5時間消化しましたorz
この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。