The Unclear Impact

"Installation: we recommend that you use Docker."

what I'm supposed to see: "hey, it's a simple one-liner! Such clean install, much wow."

what I actually see: "we couldn't figure out how to install this thing on anything but our own machine, but hey, here is a well-compressed image of our entire disk, use this instead so that we can stop trying"

@ssafar That’s not that awful. There’s software with weird enough dependencies that I really don’t want to figure out how to install the dependencies properly. Granted, extremely wrong things can and do also happen (like ad-hoc patching of files in /usr/lib blobfoxterrified).

If the Dockerfile is clear enough, it is self-contained recipe to install/build all the dependencies and build the software, so it can even help proper packaging downstream. I’d much rather prefer a Dockerfile that I run in reproducible manner than a bunch of unmaintained instructions in a text file, even if I ultimately wanted to install or package (AUR) a tool for my own native system.


@ssafar Couldn't agree more. Docker is making developers lazy and leading to software that's impossible to install outside of the very specific hand-tweaked environment provided by the docker image.

@kristof @ssafar Yes, if the Dockerfile is made available, that's definite mitigation. But if all you get is a docker image with no clue how it got created, that's not so good.

@kristof yeah, if it's a complex install, having a Dockerfile is a lot better than not having one; at least you now have _one_ way this thing can be seen working. It's also great for reproducible builds... but if the default way of installing something on your OS involves installing another OS, something might be wrong with our idea of what an OS is supposed to be :)

(I've seen projects where "non-docker" installs were in the "compiling / hacking / advanced" section...)

@ssafar I’d say a “non-docker” install could be reasonably considered “compiling / hacking / advanced” from the project’s standpoint — if I wanted to install something “natively”, but not compile it / hack on it, I’d turn to the distro I use, and not necessarily towards the upstream.

Of course, an OS where Docker is the only way to install something is probably bad (unless you consider Kubernetes an OS… ugh blobcatglare), but upstream projects are likely not part of any particular OS. Linking to OS packages would still be nice, though.

@ssafar Docker: Linux is the new JVM.

@kristof I never met them. I mean service app. I wont use docker for a cli or gui app.
And if your deps is such an mess, i dont want your app.


@kristof @ssafar kubernetes is an OS, and in that OS, Ubuntu is a library, and docker image is a statically linked executable.

It's not a particularlu good OS (eg. it has no pipes) and I don't likebhow many layers it has below it, but it's easier to think about it as an OS.