4 ms·
Buildah specializes in building OCI images. Podman allows you to pull/run/modify containers created from OCI images. These are distinctly separate tasks, and it
by thinkmassive 8y ago
Buildah specializes in building OCI images. Podman allows you to pull/run/modify containers created from OCI images. These are distinctly separate tasks, and it seems a lot more straightforward to me than having a daemon (always running, as root...) that handles both tasks.
Podman does allow you to build containers, but my suspicion is it’s intended for easier transitioning from docker (you can alias docker=podman and it just works). Also the build functionality is basically an alias for “buildah bud” so it’s more of a shortcut to another application than re-implementing the same functionality.
Edit: more reading on the intended uses of each tool if you feel like understanding them better
https://podman.io/blogs/2018/10/31/podman-buildah-relationship.html https://podman.io/blogs/2018/10/31/podman-buildah-relationsh...
- fyjvd90 8y agoI think that explanation is a little clearer, however the repos and the article don’t make this clear and the fact that podman also builds images makes it less crisp. > Some of the commands between the two projects overlap significantly but in some cases have slightly different behaviors. The following table illustrates the commands with some overlap between the projects. And this makes no sense at all if you’re purposely designing a tool.
- thinkmassive 8y agopodman uses buildah to implement "build a container like Docker" functionality... what aspect of that is difficult to understand? That functionality probably wouldn't be necessary at all if Docker didn't pollute the common understanding of containers in the first place.
- fyjvd90 8y agoSee the table of the subtle differences, why does podman create images that aren’t compatible for example? Regardless of what Docker does, if you make tools that are for a specific use case why blur the lines?
- thinkmassive 8y agoThe images are compatible. I’m not sure where you’re seeing otherwise. What is blurry to you about the purpose of either tool?
- fyjvd90 8y agoI don’t think you’re reading the article, it says: > Each project has a separate internal representation of a container that is not shared. Because of this you cannot see Podman containers from within Buildah or vice versa. > Mounts a Podman container. Does not work on a Buildah container. ^ this here is one of the problems, the containers are not compatible is my interpretation. The tool feature sets overlap with subtle differences according to the article, that blurs the line on what each one is for. They need to pick a direction, if you’re making a build tool and a run time, the the build tool must only build, and the run time must only run, or just make one tool. Intentional and truthful (meaning the words mean only what they say) design limits the chaos that happens in the wild, these tools aren’t doing that. It may seem clear to you, but the article is littlerly about how it’s not clear and how they overlap confusingly. So you’re going to come across a mess at some point due to this mistake, that or they could explain their rationale for the overlap but they don’t.
- thinkmassive 8y agoIt sounds like you’re mixing up containers and images.
- fyjvd90 8y agoI’m just taking the article at face value, they use the word container and say they’re not compatible. So maybe the article could be better, not sure.
- thinkmassive 8y agoThe format shared between the tools is an OCI image. Earlier you stated the images are incompatible, which is false. Then you switched to worrying about the internal representation of a container differing between the tools. Why are you concerned about buildah’s internal representation of a container, unless you’re contributing to the codebase?