I’m a solution architect and senior web developer. I’ve been using Docker on Ubuntu for 3 years and for applications with multiple services — for example nginx, php-fpm, mysql, ElasticSearch, Redis, logstash, Kibana, node — there is no better way to work. Docker has been a Godsend. Modeling your prod environment to a tee and running it on a reasonably priced and powered laptop is the holy grail.
Now I’ve started at a new company and they use Windows. Not realizing I would find so many problems, I started by doing what I’ve been doing, getting all the specs to their production environment and started building Dockerfiles and docker-compose. I managed to transition pretty well to Windows and Powershell. I followed theDocker integration for WSL2, but still have to use Powershell or cmd for certain things.
Here’s the problem. Files don’t update properly or consistently. My projects have 100,000 files when you get all the node modules, vendor libraries, images and css. Sometimes the application just dies because the log file suddenly can’t be found. Or composer install on the Windows host works fine and created an auto loader with 6,000 lines, but inside the container it contains only 4,500 lines. After all the work of setting up the environment in Docker - it’s unusable for development and I wasted nearly three weeks tinkering and experimenting and searching on the docker forums and stack overflow for similar issues, workarounds and bugs.
I did find some open issues on Docker for Windows. My experience with Docker on MacOS is similar and although large projects work on Mac, they’re so slow they’re also unusable. Talking 1.5 minute page loads, when on Ubuntu 20 with the same setup 1 second page loads for the same app.
I’m just curious- am I off on uncharted territory? Am I doing it wrong? Or is it just a state of reality that Docker is for Linux and everywhere else is just a close approximation? I am trying to convince my new IT guy to let me install ubuntu but I don’t know if it’s gonna happen... falling back to using xampp feels like I’m going back in time 10 years.