adlogix / docker-machine-nfs

Activates NFS on docker-machine
MIT License
794 stars 104 forks source link

Resolve firmlinks so we agree with nfsd on the path #102

Closed mtibben closed 4 years ago

mtibben commented 4 years ago

macOS Catalina's APFS uses the concept of "firmlinks" to overlay a writeable volume on a read-only volume. However when NFS addresses these firmlinked locations, it seems to be only aware of the writeable layer.

So this PR applies a similar logic to our NFS export by adding a resolveHostPath function to resolve the path to the firmlinked location. It takes a slightly naive approach by assuming if a /System/Volumes/Data/... location exists, a firmlink exists. But this seems to be a standard location in macOS Catalina now and not modifiable, so a naive approach should be fine I think.

Fixes https://github.com/adlogix/docker-machine-nfs/issues/100

tonivdv commented 4 years ago

Thanks @mtibben

gerbenvandijk commented 4 years ago

@tonivdv @mtibben thanks for this, we are using docker-machine-nfs and had developed a similar fix initially (via our own shell script). But we are wondering, how do you deal with relative paths in docker-compose? For us - even with the mounts being fixed through the shell script - docker-compose seems to also need an absolute path at the moment.

gerbenvandijk commented 4 years ago

Please disregard the above, we have upgraded docker to the latest version (and also upgraded the existing docker-machine instances) and since then relative paths in docker-compose work again as expected.

Thanks btw for keeping this project alive 💯