microsoft / microsoft/WSL

Support for Minshall+French symlinks used by Docker On Windows

Open
#2,367 1 comment 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

To unlock workflows which involve running docker, it is unrealistic to expect docker daemon support in WSL anytime soon, so only option is to have Docker On Windows running and connect to it from WSL via TCP port, which works absolutely fine apart from symlinks.

Docker-for-Windows uses Minshall+French symlinks (https://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks) style where file of a special format is created and then interpreted as a symlink on the client side (in Docker-for-Windows case in CIFS client).

Given that native NTFS links seem to be followed on server side and is unlikely to be supported in CIFS client because of that, feels like path of least resistance is for WSL to learn how to interpret Minshall+French symlinks as linux symlinks when reading from DrvFs, this will be a HUGE enabler for many compile & test workflows which involve docker.

Current workaround is to move everything to Docker and don't even attempt to access work tree from within WSL itself :(

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how WSL's DrvFs handles symlinks when accessing Docker-for-Windows files over CIFS. Read the Minshall+French symlink format reference linked in the issue and compare it with the existing native NTFS link behavior. Done means these files are interpreted as Linux symlinks from WSL while preserving existing link handling.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, linux
Domain
operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.