5 ms·
The most evil pattern is when application developers force users to install Docker to use their applications.
by mkoubaa 2y ago
The most evil pattern is when application developers force users to install Docker to use their applications.
- zzzeek 2y agopretty sure based on this blog post if the app required you to run a VM, that would be much more evil
- neoromantique 2y agoWhy? You can treat Dockerfile as documentation for the most part
- bitfilped 2y agoBecause despite most devs opinion on the matter, we don't live in a Linux only world.
- coconut08 2y agoyou have access to docker on both windows and macos
- p_ing 2y agoUnder virtualization (or emulation if amd64 on arm64). May as well spin up that VM.
- coconut08 2y agoI'm not sure what your point is. virtualized or not you can run docker on any mainstream operating system using any mainstream hardware and get near native performance.
- p_ing 2y agoOutside of development, running containers on macOS/Windows doesn't make sense. And macOS is using emulation via Rosetta, not virtualization on M-series.
- user_of_the_wek 2y agoOnly if there is no arm variant of the image you want to run.
- benatkin 2y agoYour Linux VM instance is Linux, and I don't think it's an unreasonable request to run a VM on your desktop machine, using the virtualization software provided by the OS.
- sunshowers 2y agoUnnecessary complexity makes debugging and understanding the system much harder. This is particularly common with CLI tools written in some languages. I was looking at Antora the other day (not intending to single this project out, it's just the one that came to mind). I found two ways to run it: 1. By installing Node: https://docs.antora.org/antora/latest/install-and-run-quickstart/ https://docs.antora.org/antora/latest/install-and-run-quicks... 2. By running it in a Docker container: https://docs.antora.org/antora/latest/antora-container/ https://docs.antora.org/antora/latest/antora-container/. The amount of complexity here is shocking. This is a tool that could just as well be a single binary, with the only dynamic linkage being to libc and maybe OpenSSL. This also means that if something goes wrong, black-box debugging tools like system call tracers are much harder to use. I rely on system call tracers all the time, and it really sucks when they stop working.
- mardifoufs 2y agoIt's just "complexity" if you aren't super comfortable with docker.. it's super easy to do everything you describe with docker. Like for me it's much easier to debug in a self contained system, because even a binary can have issues with dynamic linking, etc. So for me the complexity is reversed. I don't want to pollute my actual machine with stuff when a docker container is just as easy to use. I don't want my distro's OpenSSL to be slightly incompatible with something that the package is using. A dockerfile removes all of that.
- sunshowers 2y agoWell, distributing CLI tools as Docker images came about in part due to environments like Node, which made it harder to ship a single statically linked binary. Imagine, like, your source control tool being shipped as a Docker container.
- mardifoufs 2y agoI agree yes, CLI tools should not come in docker packages. I'd also blame python for that, it's harder to package. Don't get me wrong, I absolutely would love for everything to just be statically linked and packaged in a single binary (an approach that works great on windows usually). And you are right that "over using" docker is kind of a trend, but I think it's due to a problem (packaging apps in Linux) rather than being a problem by itself.
- thedougd 2y agoForcing a software development dependency manager (e.g. pip, npm, etc) is even worse.
- layer8 2y agoBoth are bad, compared to Linux distro packaging.
- vajrabum 2y agoIt may be easier to run apt-get install or yum install as a user but having done both I'd say that creating new OS level distro packages is a lot harder work than Dockerfiles to setup and is likely to run only on the specific system for which it was built and will need to be rebuilt and maybe modified every time you upgrade the OS. Docker images will run pretty much everywhere and tend to stay stable for a long time modulo security upgrades. Distro packaging is great for managing things that come with a distro where all the spec files are already written. That's likely not your webapp. Plus it's not a layer cake like Docker. That's a huge advantage that lets you leverage the expertise required for the different layers of your app or reuse publicly available base images.
- rad_gruchalski 2y agoWhy force? Docker image is a bunch of files wrapped in a compressed archive. If there’s a container file, there’s a manual what dependencies are used, and how to set it all up. Silly argument. People use containers because they’re tired of managing a dozen of configurations. As a tangent… do you mean „developers of open source software available for free download”?
- seqizz 2y agoEven though I despise containers, this is not a good take for open source. They developed an app, they got to decide how it is distributed. Hell, even if you're paying customer, if a product has only Docker as installation method and seller is not interested for providing .deb's and .rpm's, go find another solution.