きり丸の技術日記

技術・エンジニアのイベント・資格等はこちらにまとめる予定です

WindowsでGitからチェックアウトするとCRLFになって不具合発生した

副業先で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でのシェアや、今後も情報発信しますのでフォローよろしくお願いします。

参考情報

f:id:nainaistar:20211021231323p:plain