I am trying to create a few scripts that allow different developers to run Docker containers as conveniently as possible. Several containers need to share some data directories with their host system and thus I am using dockers VOLUME command and docker run’s -v option, resp.
The sharing works ok, if I enter a “real” full path (e.g. C:\some\directory… down to the actual directory), but not when I use a path relative to any “logical” drive. We are using logical drive letters, since individual developers have set up their development environments differently. We thus typically refer to the root of our project files using a logical D: drive mapped to that directory, so that our scripts can use “relative” paths (i.e. absolute to that logical drive D:). These drive-letters are created using a SUBST command (or some equivalent mechanism like via registry-entry or using the VisualSubst tool).
It seems that Docker for Desktop on Windows can’t handle such drives at all, at least one can’t select them in Settings -> Shared Drives. To be precise: one CAN select them but after clicking “Apply” the tickmark is gone again. ||-(
Is there any way or trick to get around that limitation? It would be very cumbersome if every developer first had to adapt these scripts and edit his/her personal project-root into these scripts.
I also tried using Junctions (Windows’ equivalent of hardlinks to directories). That didn’t work either! I consider these restrictions a bug! Nobody would accept if docker on Linux would not work with paths that traverse a hard link! They are simply part of the OS’ features and so Docker for Windows should be capable to handle such OS-features as well!
I’m wondering what they did here, because normally as application you don’t even realize or have to deal with logical drives or junctions in any special way. They are just normal paths…