WindowsのBoot2Dockerでdocker exec
のようなパスを渡すコマンドを実行すると以下のように失敗してしまいます。
$ docker exec -it 500e4b38e0fd /bin/bash
exec: "C:/Program Files (x86)/Git/bin/bash": stat C:/Program Files (x86)/Git/bin/bash: no such file or directory
これはMinGWのPosix path conversionによってパスがいい感じに変換されてしまうためです。
このルールとエラーメッセージから/bin/bash
はC:/Program Files (x86)/Git/bin/bash
に変換されている事が分かります。
それではどうすればいいのかと言えば、パスの先頭の/
を二重にすることで変換を抑制できます。
$ docker exec -it 500e4b38e0fd //bin/bash
root@500e4b38e0fd:/data#
MinGWのPosix path conversionはコマンドライン文字列のすべてに影響するので-f
オプションなどでファイルのパスを指定する際も同様に対処が必要になります。