Docker環境のシェルを実行しようとしたら OCI runtime exec failed: exec failed が出たときの対応

Dockerロゴマーク
  • URLをコピーしました!
> docker exec -it sample-laravel /mnt/.docker/laravel/firstexec.sh
OCI runtime exec failed: exec failed: unable to start container process: exec /mnt/.docker/laravel/firstexec.sh: no such file or directory: unknown

わたしたちの作っているLaravel環境で、最初にシェルとかを実行しておく必要があるとき、このようなエラーがでることがあります。これは、 「firstexec.sh なんか実行できないんだからね!」というメッセージです。

今回の場合、改行コード(LFがCRLFになっていた)が原因でした。

参考記事
https://qiita.com/uggds/items/00a1974ec4f115616580

Git for Windows では、暗黙の?改行変換が発生するようです。

VSCodeを利用していると、画面の右下に、現在の文字コードと改行コードが表示されますので、確認してみてください。
もしシェルスクリプトのファイルを開いて保存してしまうと、改行コードが変わってしまいます。
しかし、Gitは改行コードの変更については、履歴を残しません。改行コードだけが変換されたことは、差分にならないため、stage しても気づかないことがあるようです。気をつけないといけませんね。

VSCodeのほうも、改行コードLF、文字コードUTF-8にしておくことをおすすめします!

参考記事
https://atmarkit.itmedia.co.jp/ait/articles/1809/14/news025.html

ツチノコテクノロジーでは一緒に働く仲間を募集しています!

完全リモートで働きたい方へ!

詳しくは以下をご覧ください。

ツチノコテクノロジー採用サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ツチノコテックアカデミアの記事は、社内で誰かが質問してくれたことに回答したときに、ついでに記載しています!(^^)/
みんなの悩みを共有すれば、きっと誰かの役に立つと信じて更新しています!

目次