Re:How “It works in my machine” turns to “It works in my con...
by 8organicbits on Wednesday July 26, 2023 @08:56PM
(#36887416)
Dependency management is one thing Docker handles, and I don't really think it does a great job of that. To me containers solve the challenge of getting a development environment that closely matches production. It standardizes how deployments are performed, how testing environments are set up. Before this we had complex, immutable ansible scripts, READMEs, install scripts that had to be babysat, snowflake servers that no-one knew how they were configured. It's also an extremely widely used technology, so if you use it in your stack you can expect many people you hire to know how to use it from day one versus everyone learning a bespoke set of custom scripts.
Re:How “It works in my machine” turns to “It works in my con...
by nerdponx on Thursday July 27, 2023 @02:29AM
(#36889711)
It also solves the "we have limited developer-hours available and just want to deploy some stuff" problem. Docker is amazing for teams with limited resources. If you can deploy one image, you can deploy any image.
Re:How “It works in my machine” turns to “It works in my con...
by marcosdumay on Thursday July 27, 2023 @10:38AM
(#36894298)
That's my point. I hear a lot of what you say, but I don't understand it.
In general, without some kind of qualification, deploying an image is way worse than a flat binary, or a tar from some interpreted language.
Re:How “It works in my machine” turns to “It works in my con...
by imtringued on Thursday July 27, 2023 @03:05PM
(#36898577)
I don't know what you are talking about. My production setup is dumber than you would think. A bunch of bash scripts in a git repository. You just do git pull and then run a single bash script. ./app build builds the entire thing. If you want to run it then do ./app start.
Yes you do need to configure some environment variables like in almost any other form of deployment.
Messing around with tar files or flat binaries doesn't work for me. I tried that. I build a python app into an executable with Nuitka but it generates a folder anyway. Ok throw it in a tar file. Nope, doesn't run because the glibc version is too new on the developer machine. Nice try. I have to build it on the target machine. Amazing.
Re:How “It works in my machine” turns to “It works in my con...
by nerdponx on Thursday July 27, 2023 @06:16PM
(#36900880)
I feel the same about your post. I have no idea how deploying a flat binary or Python tarball is better than a container image. The entire system is effectively a dependency. Docker (or equivalent) lets me ship the entire system. Moreover I can take quite literally an image of that one system and deploy it to any number of machines identically, without any rebuilding. And I can host it interchangeably on any number of cloud providers with only small changes in configuration. The benefits go on and on. I would only ever bother with a "plain" deployment in the future if I had complete control over my deployment environment (+ the in-house expertise and time budget to manage it) and the performance overhead of the container was unacceptable.
But then, we have none of those problems at work and people still believe it's a panacea. I don't know what people believe they gain by it.