Live data from Hacker News

I don't like Docker or Podman

blog.liw.fi

31–40 of 92 posts

Re: I don't like Docker or Podman

#31
post #4

The most evil pattern is when application developers force users to install Docker to use their applications.

Why 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”?

Re: I don't like Docker or Podman

#32

Earlier quoted context omitted.

Why? You can treat Dockerfile as documentation for the most part

Because despite most devs opinion on the matter, we don't live in a Linux only world.

you have access to docker on both windows and macos

Re: I don't like Docker or Podman

#33
post #26
post #5

Cool story but at least try to give some argumentation when you say stuff like: >The design of the language in Dockerfile is ad hoc in a bad way. It’s difficult to understand, for me, and easy to make mistakes. Because that reads like a skill issue to me

Not writing all software in machine code is also a skill issue. The question is not if it's a skill issue or not, but if the complexity of the solution matches the complexity of the problem domain. And also: if there are easier and clearer ways to reach the same goals.

Bingo. Which is why that k8s fad was inappropriate for almost everyone out there. Your app could have run under cron every hour once an hour on an i586 but you had to spin k8s because it was "cool".

Re: I don't like Docker or Podman

#34
post #4

The most evil pattern is when application developers force users to install Docker to use their applications.

Why? You can treat Dockerfile as documentation for the most part

Unnecessary 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-quicks...

2. By running it in a Docker 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.

Re: I don't like Docker or Podman

#35
podman very much reminds me of subversion

subversion intended to be a better version of CVS

which it certainly delivered, but no-one really stopped to think if that was such a good thing in the first place

Re: I don't like Docker or Podman

#36
post #4

The most evil pattern is when application developers force users to install Docker to use their applications.

Even 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.

Re: I don't like Docker or Podman

#37
So here's the thing: Docker is the best way we have to document how to set up a project/application in a way that can be repeated on arbitrary computers. The alternative was "have a README where you list all of the things you need to do/install in order to get this project running".

That failed. Miserably.

Developers always assumed things like "well naturally, if you're playing in the XYZ space, you've already got meson installed. What, do you expect me to teach you basic arithmetic in this README too?" Developers across the board, across programming subcultures, showed themselves unable to get past this sort of thing.

So now we have Docker. You may not like it, but this is what peak install guide looks like. An unambiguous file that describes the exact shell steps required to get the piece of software running, starting from a base distro. The developer can't omit any steps or the container won't work on their machine.

It sucks that this Hegelian situation calls for such a draconian solution, but that's where we're at. Developers as a whole can't be trusted to handle this on their own. If you don't have a better solution to this problem, I'm not sure there's much point in complaining.

Re: I don't like Docker or Podman

#38
post #26
post #5

Cool story but at least try to give some argumentation when you say stuff like: >The design of the language in Dockerfile is ad hoc in a bad way. It’s difficult to understand, for me, and easy to make mistakes. Because that reads like a skill issue to me

Not writing all software in machine code is also a skill issue. The question is not if it's a skill issue or not, but if the complexity of the solution matches the complexity of the problem domain. And also: if there are easier and clearer ways to reach the same goals.

Dockerfiles provide a small set of operations to create a reproducible software artefact. I have been doing this for a while, I’ve seen POM files, Groovy Pipelines, endless shell scripts, Makefiles, and lots more. From all those, Dockerfiles do not seem like an absurdly complex solution to the problem to me.

Re: I don't like Docker or Podman

#39

Earlier quoted context omitted.

Because despite most devs opinion on the matter, we don't live in a Linux only world.

you have access to docker on both windows and macos

Under virtualization (or emulation if amd64 on arm64). May as well spin up that VM.

Re: I don't like Docker or Podman

#40

Earlier quoted context omitted.

Why? You can treat Dockerfile as documentation for the most part

Because despite most devs opinion on the matter, we don't live in a Linux only world.

Your 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.
Post reply on HN