[BUG-23] Support using podman instead of docker
dkliban opened this issue · comments
Is this issue related to an issue?.
[dkliban@fedora ~]$ si --version
si 20230816.151117.0-sha.fae4e1c44
[dkliban@fedora ~]$ si start
Error:
0: failed to determine Docker socket location; candidates=["/home/dkliban/.docker/run/docker.sock", "/var/run/docker.sock"]
Location:
bin/si/src/main.rs:47
Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
Describe the outcome you'd like from us
Add support for running si using podman.
Describe alternatives you've considered
None. I don't want to install docker.
Code of Conduct
- I agree to follow this project's Code of Conduct
Additional context
No response
Hi @dkliban! Thanks for filing this issue.
As a Fedora user myself, I agree that Podman would be great. We would like to add functionality at some point.
For those interested in taking a look, here is the primary library used for the si
CLI. It will likely be best to use this library to talk to Podman since we use that author's Docker library.
Thanks for raising this issue!
I made a little progress with podman on Fedora by setting export SI_DOCKER_SOCK=/run/podman/podman.sock
. si installs, but it still complains about having trouble connecting to Docker later on. There is an -e podman option that generates an error stating that podman support is "coming soon". Interestingly, it says that container updates were found and si update
initially looks like it might do something. si install
successfully downloads containers and looking at the source code, it's passing the docker object for that command, so it's probably close.
So @AnnaAtMax and I had a conversation about this issue today and wanted to put some context behind it for the community to ensure that we are all aligned. The YouTube video of the conversation is here https://www.youtube.com/watch?v=ObUEubhqFvI
The opportunity canvas for this is:
Feel free to ask either of us for any further information
This conditional will need removed to make it work as well:
Line 86 in dad5771
Could an alternative be to provide a way to install si on Kubernetes? It is 1 more thing to manage but it also ads options because
kind
already supports podman or docker- minikube supports running in VMs without a container runtime
- docker desktop and rancher desktop offer kubernetes options on Windows, Mac, or Linux
- k3s can be run (binary) with any CRI compatible container runtime
It seems like that could be more flexible than adding direct podman support
While the ability to deploy SI on Kubernetes would let me finally start using SI, there is additional value in being able to run SI on a laptop without Kubernetes. Should I open a separate issue for Kubernetes support?
Yeah I am going to suggest we keep this specific to podman and then we follow up with any other container engines in separate issues - that way we can focus on the specific outcome :)
Could an alternative be to provide a way to install si on Kubernetes? It is 1 more thing to manage but it also ads options because
1. `kind` already [supports podman](https://kind.sigs.k8s.io/docs/user/rootless/) or docker 2. minikube supports running in VMs without a container runtime 3. docker desktop and rancher desktop offer kubernetes options on Windows, Mac, or Linux 4. k3s can be run (binary) with any CRI compatible container runtime
It seems like that could be more flexible than adding direct podman support
I'm doing plenty with Rancher ecosystem these days and am definitely up for helping with getting this working on k3s. A helm chart and/or operator could also keep it relatively portable to support other k8s environments (kind, k0s, etc) from there. I'm happy to create a new issue for it to not hijack this issue any more 🙂.