3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

/usr/bin/env: ‘ruby\r’: No such file or directory 【windows10 / docker】

Last updated at Posted at 2022-08-06

起こったこと

  • MacとWindowsで開発しているプロジェクトで、Winを利用して開発をしようとしてdockerを起動したら /usr/bin/env: ‘ruby\r’: No such file or directoryが発生した。
  • Macでは何もしなくても普通にdockerが起動する。
  • ソースコードを一切変えずに、Win10で起動するとエラーが起こっていた。

原因

  • Git for Windowsを利用していると、git pull or cloneするタイミングで、改行コードがLFから強制的にCRLFに変更される仕様らしい
  • CRLFはWINでは動くけどunix系だと動かない
  • そのためdockerで起動すると、改行コードがうまく解釈できずに問題が起こっていた。

対処方法

  • これでなおった

$ git config --global core.autocrlf input #clone pull時に改行コードをCRLFへ強制変換をしない設定に変更
$ rf -rf your-repo #レポジトリを削除
$ git clone your-repo #レポジトリをクローンしなおす
$ docker system prune # コンテナもろともすべて削除
$ docker-compose up #upしなおす

補足

  • 改行コードには、以下3つがある
    • CR
    • LF
    • CR/LF
  • CR/LFはWin系で動作する。LFはUnic系で動作するらしい。(ここちょっと知識なくて怪しい)
  • ちなみに弊社はrubocopを使っているのだが、いつもWIN環境でcarridge return があるよ~と怒られていた。謎だなぁと思っていたがこれが原因だった。

参考

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?