I left FreeBSD for Fedora and I’m using the Kinoite version, a “problem” I’m facing is about podman, it works, but compose doesn’t, I found a way to do this by installing Podman Desktop through Flatpak, but I’d like to know If anyone knows if it is possible to install the binary (as well as kubectl and minikube), because to use compose it is necessary to keep podman desktop open at all times. I don’t want to install using rpm-ostree because if I were to modify the base of the system, it wouldn’t make any sense for this atomic version to exist, it would be enough to use the workstation.
Added atomic-desktops, kubernetes, podman, podman-compose and removed workstation
What do you mean “compose” doesnt work? And what does this have to do with the Podman Desktop app?
Podman-compose needs a daemon afaik done by setting a systemd service.
You can place any binary in /var/usrlocal/bin
or ~/.local/bin
and it should work.
now kubectl sounds like Kubernetes? Is that right?
This is absolutely untrue. You can install and uninstall whatever you want, and revert at any point, rebase, view the changes etc.
rpm-ostree is a tool to install RPMs onto your system. That works very well, you can layer 20 or more applications, no problem.
The difference is that rpm-ostree reset
will give you a vanilla system after a restart, and rpm-ostree status
shows you your changes all the time.
This is way better than dnf Fedora.
kubectl
is available as kubernetes-client rpm in Fedora. The version for F40 is kubectl 1.29. There are 1.30 and 1.31 (release candidate) versions in COPR at the moment. 1.29 should be ok given version skew policy from kubernetes. minikube is supported on Fedora by the minikube team but as I recall this is not installed as an rpm (curl a binary i think). The kubernetes team also has rpms for kubernetes available from their repositories.
my problem is not kubectl or minikube, I used as an example the way to install through a binary, I can use it perfectly (I’m sorry if I didn’t make myself understood). My problem is podman compose not working.
In order for podman compose
to work with its default configuration, you most likely need to install docker-compose
, which IMHO makes using this so-called “thin wrapper around an external compose provider” pointless.
In this situation I think you have two options:
-
Install and use
docker
anddocker-compose
This comes with the caveat that on Fedora Docker is outdated (not to say deprecated) and if you want to use the latest version you will need to install it from the upstream Docker sources. -
Use Podman Quadlet
This is what I personally use when workloads are light and Kubernetes would be an unnecessary overkill.
You can convert a (Docker) compose files to Quadlets with podlet relatively easily.
The podman-compose github says: “An implementation of Compose Spec with Podman backend.”
I have not used podman-compose much recently but it is installed on my workstation and seems to function as designed.
Was podman-compose
installed by default on Fedora Workstation or did you install it later? In Fedora Silverblue (and I assume Kinoite, which this post is about), podman-compose
is not in the base image.
Here is the output of podman compose --help
command executed on Fedora Silverblue.
hricky@silverblue >_ podman compose --help
Run compose workloads via an external provider such as docker-compose or podman-compose
Description:
This command is a thin wrapper around an external compose provider such as docker-compose or podman-compose. This means that podman compose is executing another tool that implements the compose functionality but sets up the environment in a way to let the compose provider communicate transparently with the local Podman socket. The specified options as well the command and argument are passed directly to the compose provider.
The default compose providers are docker-compose and podman-compose. If installed, docker-compose takes precedence since it is the original implementation of the Compose specification and is widely used on the supported platforms (i.e., Linux, Mac OS, Windows).
If you want to change the default behavior or have a custom installation path for your provider of choice, please change the compose_provider field in containers.conf(5). You may also set PODMAN_COMPOSE_PROVIDER environment variable.
Usage:
podman compose [options]
Examples:
podman compose -f nginx.yaml up --detach
podman --log-level=debug compose -f many-images.yaml pull
Error: looking up compose provider failed
7 errors occurred:
* exec: "docker-compose": executable file not found in $PATH
* exec: "/var/home/hricky/.docker/cli-plugins/docker-compose": stat /var/home/hricky/.docker/cli-plugins/docker-compose: no such file or directory
* exec: "/usr/local/lib/docker/cli-plugins/docker-compose": stat /usr/local/lib/docker/cli-plugins/docker-compose: no such file or directory
* exec: "/usr/local/libexec/docker/cli-plugins/docker-compose": stat /usr/local/libexec/docker/cli-plugins/docker-compose: no such file or directory
* exec: "/usr/lib/docker/cli-plugins/docker-compose": stat /usr/lib/docker/cli-plugins/docker-compose: no such file or directory
* exec: "/usr/libexec/docker/cli-plugins/docker-compose": stat /usr/libexec/docker/cli-plugins/docker-compose: no such file or directory
* exec: "podman-compose": executable file not found in $PATH
The podman compose
man page explains basically the same thing.
Yes indeed!. Thank you. I had forgotten all about podman compose
.
I must correct myself and admit that the easiest option to get podman compose
working on Atomic desktops would be to simply install podman-compose
with rpm-ostree install podman-compose
and reboot the system.
I don’t have a compose file to test right now, but it should work.
hricky@silverblue >_ podman compose --version
>>>> Executing external compose provider "/usr/bin/podman-compose". Please refer to the documentation for details. <<<<
podman-compose version 1.2.0
podman version 5.1.2
Thank you very much, but as I said, if the intention of the distribution is to maintain the unalterable base, providing the main tools and making toolboxes available for development, it doesn’t make sense to have podman working and podman compose not, making it necessary to use rpm- ostree, I see no reason to use this version and not the workstation version.
I don’t think it’s
or at least AFIK such a statement is not documented anywhere.
From the current Fedora Kinoite official user guide:
Package layering: Most Fedora packages can be installed on the system with the help of package layering. By default the system operates in pure image mode, but package layering is useful for things like libvirt, drivers, etc.
We should probably add something like “containerization packages, such as container runtimes (containerd, CRI-O, etc.), or container orchestration tools (docker/podman-compose, Kubernetes, etc.)” in the new version of the Atomic Desktops docs, currently under development.
You can learn more about package layering here.
I also don’t think
because not everyone who uses podman
should necessarily use podman compose
.
For podman compose
to work on Fedora Workstation, you need to replace rpm-ostree
with dnf
, so the corresponding command should be sudo dnf install podman-compose
.