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 install
fails 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
) withmetadata
anduid/gid
flags. - Added
/etc/fstab
entry to mount\\wsl$\docker-desktop-data
automatically.
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
vite
directly; 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-data
mount point withmetadata
- Add the mount line to
/etc/fstab
- Run
npm install --no-bin-links
inside 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.