fnproject/fn

Podman, Buildah, and Skopeo support

c16a opened this issue · 6 comments

c16a commented

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

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

type ImagePuller interface {
PullImage(ctx context.Context, cfg *docker.AuthConfiguration, img, repo, tag string) chan error
SetRetryPolicy(policy common.BackOffConfig, checker drivers.RetryErrorChecker) error
}

c16a commented

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.

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

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

go for it!

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