From docker-development
Re-routes docker and docker-compose commands through wsl.exe when running on Windows outside WSL to prevent bind-mount path corruption on SMB/network drives.
How this skill is triggered — by the user, by Claude, or both
Slash command
/docker-development:docker-via-wslThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This applies when **you, the AI agent, are running on a Windows host and your
This applies when you, the AI agent, are running on a Windows host and your
shell is OUTSIDE WSL -- your Bash tool is Git Bash/MSYS (uname -s shows
MINGW64…/MSYS…) or you are in PowerShell/cmd. The docker binary there
talks to Docker Desktop, but the daemon and its filesystem live in WSL2, so you
must run commands inside WSL via wsl.exe.
If your shell is already inside WSL (uname -s shows Linux, native path
/home/<user>/...), this skill does not apply -- run docker directly.
On Windows, Docker Desktop's daemon runs inside the WSL2 VM. Issue every
docker command -- run, build, exec, pull, push,
volume, network, inspect, compose, … -- from inside WSL, against a
native Linux path. Never from a Windows shell (Git Bash/MSYS/PowerShell),
especially on a mapped network/SMB drive (Z:, UNC \\host\share).
Driving Docker from a Windows shell whose CWD is on a network share forces
Docker Desktop to translate the Windows bind path (e.g. Z:\proj\config) into
a VM path. On SMB/UNC drives this is unreliable: it can duplicate a path
segment (e.g. …/user/user/proj/config), so Docker mounts a wrong, empty
directory and auto-creates the missing bind source as an empty directory.
A file the container expects (init.sql, a config file) then appears as a
directory -> could not read from input file: Is a directory. Your editor
writes still land on the correct path via the share, so host and container
views silently diverge.
This is NOT a Docker cache bug nor a "single-file bind mounts are fragile" problem (single-file binds work fine from WSL). The root cause is piloting Docker from Windows/SMB instead of from WSL.
Run any Docker command through WSL, in a native Linux path:
wsl.exe -e bash -lc "cd /home/<user>/<project> && docker compose up -d"
wsl.exe -e bash -lc "docker ps"
wsl.exe -e bash -lc "docker build -t myimg /home/<user>/<project>"
Keep the project on the Linux filesystem the WSL distro sees natively
(/home/<user>/...), not browsed through the Windows drive letter.
See references/diagnosis-and-fix.md for inspecting the mounted path, comparing
host vs container views, and cleaning up a phantom bind directory.
npx claudepluginhub netresearch/claude-code-marketplace --plugin docker-developmentProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.