Q: DevKinsta Version
A: 2.13.4
Q: OS Version
A: Windows 11 Pro
Q: Docker Desktop Version
A: 4.29.0 (WSL 2 engine)
WSL distro
Ubuntu 22.04 LTS
So I’ve had nothing but problems with DevKinsta right from the start. I eventually got it to sort of work by switching to an old version of Docker and using Hyper-V (had to purchase a Windows 11 Pro license). Now I could actually work on my websites locally, but pulling and pushing websites would take an average of 1h, and would fail half the time for various unknown reasons. So I would end up just manually transfering my changes through FTP like a barbarian.
After having enough of this, I decided to try WSL 2 again and spent the last 6 hours trying to make DevKinsta usable on Windows, spoiler alert, I couldn’t do it. I feel like a local WordPress development tool should be able to work on Windows with standard WordPress sites, but looks like it wasn’t designed with that in mind for some odd reason.
Here’s a recap of all the problems I encountered.
Pulling from Kinsta works, but…
- File operations in VS Code (
delete,search,rename) are unbearably slow when working directly inside the DevKinsta volumes (\\wsl$\docker-desktop-data).
Cannot run npm install inside the DevKinsta volume on Windows
npm installfails with UNC path errors (EPERM: operation not permitted, symlink…).- Symlink creation is blocked by Windows when using the WSL2 Docker backend, even with Developer Mode enabled.
Attempted workaround: WSL + Linux Node + metadata mount
- Installed Ubuntu under WSL2.
- Installed Node inside Ubuntu.
- Created a mount point (
/mnt/docker-data) withmetadataanduid/gidflags. - Added
/etc/fstabentry to mount\\wsl$\docker-desktop-dataautomatically.
New problem: npm symlinks still fail
- Windows refuses to allow symlinks on the UNC path (
\\wsl$\docker-desktop-data), even when mounted withmetadata. - Only workaround is running
npm install --no-bin-links, which skips symlink creation but breaks package binaries likevite. - Result: I can’t run
vitedirectly; I have to reference it manually vianode node_modules/vite/bin/vite.js.
Even with npm install --no-bin-links, file watching doesn’t work
- Vite (and Gulp) don’t detect file changes because inotify events don’t propagate through the Docker/WSL bridge.
- The only workaround is to use polling (
CHOKIDAR_USEPOLLING=true), which is slow and inefficient.
So here we are, the simplest workflow I could come up with (that still does not fully work by the way), is:
- Install Ubuntu
- Install Node inside Ubuntu
- Create a
/mnt/docker-datamount point withmetadata - Add the mount line to
/etc/fstab - Run
npm install --no-bin-linksinside Ubuntu - Use polling for Vite (
CHOKIDAR_USEPOLLING=true npm run dev)
For reference, here’s what I have to do with WP Local:
- Pull the site - fin.
So is this game over? Do I just give up and buy a Mac? Is there an official, documented workflow for DevKinsta + Docker + WSL2 that supports npm install (with symlinks) and working file watchers for typical WordPress frontend builds? I refuse to believe that I’m the only one with this setup. And I don’t understand how such a good hosting platform can have such a bad local development tool.
Thanks for you help.