whalebrew / whalebrew

Homebrew, but with Docker images
Apache License 2.0
4.06k stars 106 forks source link

How to use with Podman #306

Open kth8 opened 1 month ago

kth8 commented 1 month ago

I recently saw 0.5.0 release added support for podman but I can't find any documentation on how to configure whalebrew to use it. I looked through the files changed in #235 but it was all code and no documentation. I thought it might automatically use podman if it can find the podman binary but not the docker socket but that doesn't seem to be the case.

tjamet commented 1 month ago

Thanks for raising! I will take a look to see whether we can handle this transparently in whalebrew, and in particular better handle docker contexts. Beware that podman implements a docker compatible socket but does not implement all docker interfaces. For example, it does not create new docker context, in my experience, which could require more work to use whalebrew with podman

Meanwhile, you should be able to use whalebrew with podman by setting the DOCKER_HOST environment variable

tjamet commented 1 month ago

The support added by #235 was done in a context where podman was, as far as I understand, always creating the /var/run/docker.sock and hence didn't need any documentation update as usage was exactly the same. The PR just changed the way it interracts with the docker daemon so it is also compatible with the podman implementation

Indeed, when you have /var/run/docker.sock enabled and pointing to your podman instance, whalebrew works just fine

image

My understanding is that, in the new context where you can run several container runtimes at the same time and select them using docker contexts, we need to also support this in whalebrew. When it comes to podman per se, I think it does not create any docker context. It would be great if you had any documentation on the standard way for podman to expose the docker socket so we can add support for it.

kth8 commented 1 month ago

My Podman socket wasn't enabled by default so I had to manually enable it. I then set the DOCKER_HOST environment variable to point to $XDG_RUNTIME_DIR/podman/podman.sock as you suggested and whalebrew was able to work. This is the Podman socket documentation I followed: https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md