Closed erikwilson closed 7 years ago
Interesting. Hope I'll find some time to check this.
Thanks, hope you have a chance to check it out! I did some cleanup of the unfs fork, it uses pure bash now, it may work in Linux distros if anyone has the time to test.
Nice work... I've been working on something similar.
It would be great to have the shared folder option to have the ability to take a mountpoint name inside the machine... ie: --shared-folder=/User/bob/project:/project
.
The RancherOS folks have documentation of how to get NFS client mounts going in their documentation. That'd be another great addition.
Hey @erikwilson ,
I took some time to checkout UNFS3 and the changes you made in your fork. Several things pops to my mind:
That being said, I do think, if UNFS3 is actively used by many users that it has it's place. But how to support both system correctly?
It could be as a separate project, but I don't think this will benefit both projects as a lot of functionalities related to docker machine are the same ... Put everything in the same bash file or do it like they do it on the docker-machine project trying to work with "drivers". The idea would then to isolate every common functionalities and implement each specific functionalities in different files ...
These are just ideas so any feedback or other propositions are welcome.
Cheers
I forked and added the functionality I mentioned. It's a PR on your fork @erikwilson
Thanks @tonivdv, it does appear that unfs3 is not very well maintained, being on Sourceforge and all. There are a fair amount of daily downloads but the last update was from October of 2015. Looks like maybe a couple updates a year to the project. Was trying to find it on the latest release of Ubuntu, seems there is some issue where it hasn't made it into the Universe repository for 15-10. Hopefully it will continue to be well supported as a brew package.
If you are interested in supporting Unfs3 (or things like RancherOS) I would recommend trying to split the logic up into smaller parts. Unfortunately bash isn't the greatest for modular programming, but would still help to make the code more manageable.
Unfortunately bash isn't the greatest for modular programming, but would still help to make the code more manageable.
I couldn't agree more :) . At one time I was thinking of migrating that to golang (as most of docker stuff is done in that language) ... but currently I got a lot on my plate with our own internal project so not sure when that will see the day.
That being said, even with bash we could do very fancy stuff :)
Many thanks for creating docker-machine-nfs, it is a much better solution to buggy virtual machine shares or overly specialized solutions such as Dinghy.
However, NFS can become a pain point with the security and permission issues which often arise. User-space NFS seems to be the solution to many of these problems.
Please review the following fork for a functional implementation using UNFS3: https://github.com/erikwilson/docker-machine-unfs
Here are some advantages to using unfsd vs the system nfsd:
Disadvantages to switching to unfsd:
Other advantages to the unfs branch that can be backported:
I would submit the fork as a pull request but am hoping for some feedback first. I have experienced some issues with nfs where docker doesn't seem to perform virtual mappings correctly but reports 'Cannot link to a non running container' if there are any linked containers. The solution seems to be removing containers before starting (eg docker-compose rm), rather than killing them.