SkiffOS icon indicating copy to clipboard operation
SkiffOS copied to clipboard

podman: add support

Open paralin opened this issue 3 years ago • 4 comments

Add support for podman under the apps/podman layer.

podman is a modern lighter weight alternative to Docker that has the same CLI and supports features like rootless containers.

The apps/podman layer could install a symlink so that the "docker" command aliases to "podman".

In future:

Skiff/core could be rewritten to use the podman API instead of the Docker API, and use a k8s Pod syntax to define containers instead of the skiff-core yaml config used today.

paralin avatar Mar 23 '22 06:03 paralin

I was just thinking about this , this morning and I thought i'll create an issue for it. Beat me to the punch ! Nice work @paralin

I think podman will be a great addition to SkiffOS

Greylinux avatar Apr 01 '22 09:04 Greylinux

https://github.com/skiffos/buildroot/pull/20

Added a working podman package for both host & target.

There are a few TODOs remaining before merging.

paralin avatar Jul 24 '22 23:07 paralin

@paralin After podman, can I make a feature request for https://github.com/containers/toolbox and https://github.com/89luca89/distrobox ? Those would be convenient to have on SkiffOS

VarLad avatar Jul 31 '22 09:07 VarLad

@VarLad can do. In the meantime, though, you can probably accomplish the same thing with Skiff Core.

paralin avatar Aug 01 '22 03:08 paralin

In future:

Skiff/core could be rewritten to use the podman API instead of the Docker API, and use a k8s Pod syntax to define containers instead of the skiff-core yaml config used today.

Another alternative would be to implement the docker compose yaml format. This way you could just use docker compose on another OS and later migrate to SkiffOS.

This would help in migrating my project to SkiffOS: I use docker compose on PiOS for my multiroom audio server to set up 8 container instances with all the container specific config within an env file. Via the profile feature I can only start the desired instances via docker-compose -f compose.yml --profile on up -d based on environment variables. I plan to build sometime a small supervisor container that allows changing the env file.

aschamberger avatar Aug 20 '22 09:08 aschamberger

@aschamberger You can already use docker compose with apps/compose - does that work?

Skiff Core is more meant to define long-running containers with ssh drop-in. I don't know if the compose format would translate 1-1

paralin avatar Aug 20 '22 10:08 paralin

All of the Buildroot packages for podman, catatonit, conmon, cni-plugins, crun have been submitted upstream & are in the SkiffOS tree. #235 tracks merging the config packages apps/podman and apps/crun

paralin avatar Aug 21 '22 05:08 paralin

Podman support is merged to master with apps/podman 🥳

paralin avatar Aug 21 '22 05:08 paralin

@VarLad can do. In the meantime, though, you can probably accomplish the same thing with Skiff Core.

@paralin Any chance we can get a Fedora/Fedora-based image in skiff/core in the future? :sweat_smile:

VarLad avatar Aug 22 '22 23:08 VarLad

@tianyuanhao I updated the package, thanks. Will resubmit.

By the way, some of those Buildroot packages in minikube could use an update. Replace cni with my cni-plugins for example, because cni doesn't even use the Go build infrastructure. The licenses & a few other details could be updated in crun too.

Hopefully they just use the upstream packages once they are merged.

@VarLad please open an issue on that

paralin avatar Aug 23 '22 01:08 paralin

@tianyuanhao For the update... We still need to run AUTORECONF...

WARNING: 'automake-1.16' is probably too old.
         You should only need it if you modified 'Makefile.am' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'automake' program is part of the GNU Automake package:

paralin avatar Aug 23 '22 01:08 paralin

@VarLad Fedora, distrobox, and toolbx are all added. :)

paralin avatar Aug 23 '22 02:08 paralin

That was really fast. Thanks a lot @paralin

VarLad avatar Aug 23 '22 08:08 VarLad