Discussing the decision to move away from using Docker for local development due to performance overhead and increased complexity. Highlighting issues like slow file system syncing on non-Linux systems and the friction Docker adds to daily debugging workflows.
Is Kamal only for Rails? Anything similar for ASP.NET Core apps?
Never really used Kamal for anything else, but as far as I know it works with any type of web app that can be containerized
Have you ever tried developing in Docker under Linux ? It is so light you have the feeling you work directly on the host system. I still use Docker for local dev because I don’t want to pollute my system with all kind of libraries that sometime I need to test.
Interesting. Been doing mostly dev on Windows. I need to get a Linux machine. ![]()
I build image directly on VPS since I my machine and VPS are on different architecture. It is not impossible, but it is very slow imo.
I’ve used Docker on Linux, and for the most part it’s been decent. I usually don’t run into major issues. That said, I do get the impression that Docker uses a fair amount of resources, so I’ve been exploring some Nix-based alternatives. I don’t have a clear answer yet, though.
Here are some of the tools I’ve been looking into:
I only use it until I start doing the regression test. In 99% of the time, I feel I do not need to worry about the platform specific issues if I am using macOS
I have some colleagues that say that using WSL2 + Docker is almost as fast as running directly on Linux. You may want to try this first before jumping fully to Linux.
I primarily develop applications in python and the language ecosystem offers some tools to manage different versions of the language and different versions of the libraries etc. Why is using something like nix or flox better? Is it fair to say that the advantage of using nix/flox are much more for developers using multiple languages?
I wouldn’t say dev containers, Devbox, or similar tools are strictly “better”. It really depends on your needs. That said, here are a few reasons people might choose them over language specific tools:
-
System-level dependencies: you can manage compilers, libraries, shells, databases, CLI tools, etc., all in one place alongside your language tooling (like you mentioned).
-
Easier onboarding: language-specific tools usually don’t handle system-level requirements, so it’s pretty common to run into issues when setting up a dev environment for a new project.
-
Developer experience: sometimes it just comes down to preferring the workflow these tools offer.
Personally, I like the idea of frictionless, reproducible environments and using the same tools everywhere, no matter what language a project is built in.