fnproject / fn

The container native, cloud agnostic serverless platform.
http://fnproject.io
Apache License 2.0
5.7k stars 404 forks source link

Podman, Buildah, and Skopeo support #1561

Open c16a opened 4 years ago

c16a commented 4 years ago

Support for Podman, Buildah, and Skopeo

The current fn init and subsequent containers exclusively use Docker, and require the Docker daemon to be running. The open-source leaner alternatives Podman, Buildah, and Skopeo are intended to replace Docker, and provide a daemon-less container experience. The can also compliment and augment to the feature set of Fn CLI.

c16a commented 4 years ago

Interfaces similar to the below can be practically re-used to implement support any OCI-compliant container tools.

https://github.com/fnproject/fn/blob/88635fcf086b80dbe809257951beb08727979cfb/api/agent/drivers/docker/image_puller.go#L25-L28

c16a commented 4 years ago

At this point, I might have to agree that Fn is tightly coupled with Docker. Not sure if this can be implemented as a feature, or a standalone fork.

rdallman commented 4 years ago

Hello, we have the driver interface https://github.com/fnproject/fn/blob/master/api/agent/drivers/driver.go which seems to be what you're looking for, this enables swapping out container drivers. Of course, it has become very docker specific over time, it's possible to stub out certain things to get something working to ignore certain feature sets we currently offer via the docker driver, and the basic create container / run container ought to be sufficient. it would be possible to implement such a driver separately and configure fn to start with it, no fork needed. it would be nice to run containers without the docker daemon!

c16a commented 4 years ago

Is someone looking to work on this? Hope I can self-assign and start working?

rdallman commented 4 years ago

go for it!

davidkhala commented 2 years ago

Looking forward to have them support, especially now that docker desktop has its license changed.