標題の通り、dockerの -v オプションでホストのファイルをマウントしようとしたら以下のエラーが出て出来ません。
docker run -v "/Users/yusuke/Library/Mobile\ Documents/com~apple~CloudDocs/opensource/dockertest/hoge/":/tmp/hoge/ test docker: Error response from daemon: Mounts denied: approving /Users/yusuke/Library/Mobile\ Documents/com~apple~CloudDocs/opensource/dockertest/hoge: file does not exist.
調べたところDockerの設定で、Experimental Features | Use gRPC FUSE for file sharing、をオフ(ノブを左側)にしてApply & Restartすれば解消。
以下の通り。
% docker run -v "/Users/yusuke/Library/Mobile Documents/com~apple~CloudDocs/opensource/dockertest/hoge/":/tmp/hoge/ test Hello World true
てっきり "Mobile Documents"に入っているスペースをうまく扱えなくなったのかと思ったけどダブルクオートで囲ってもスペースの前にバックスラッシュを入れてもちゃんと働きます。
% run -v /Users/yusuke/Library/Mobile\ Documents/com~apple~CloudDocs/opensource/dockertest/hoge/:/tmp/hoge/ test Hello World true
参考:
after updating docker desktop, local changes are no longer detected
2.4.0.0 fails to mount source path with "Use gRPC FUSE for file sharing" turned on #4959