サーバ

DockerでiCloudドライブ上のファイルをマウントできず Error response from daemon: Mounts denied: approving *** が発生する

標題の通り、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