[PODMAN] Unable to run systemd services with quadlet systemd-generator
from MigratingtoLemmy@lemmy.world to selfhosted@lemmy.world on 08 Jun 21:02
https://lemmy.world/post/16326186

Hi everyone,

This would seem to be a basic question (I’ve been on this for a few hours and can’t seem to get it working).

This is my file for my pod:

$ cat backup.pod

[Unit]
Description=backup pod

[Pod]
Network=slirp4netns:port_handler=slirp4netns
PodmanArgs=--userns=auto:size=10000
PodName=backup

And this is the file for my container which is supposed to be part of the pod:

$ cat backup.container

[Unit]
Description=backup container

[Container]
Image=docker.io/debian/debian:latest
ContainerName=backup-container
Entrypoint=/bin/bash
Exec=/bin/bash -c "apt-get update -y && apt-get upgrade -y && apt-get install rclone vim -y && exec bash"
Pod=backup
GlobalArgs=-d -t

[Service]
Restart=always

[Install]
# Start by default on boot
WantedBy=multi-user.target default.target
  1. Podman’s systemd-generator doesn’t seem to create any service file for backup.pod in /run/user/$(id -u user). I do see a service file for backup.container, backup.service.
  2. Regardless, systemctl start backup.service errors out anyway.

I’m unable to understand how to use quadlet from the documentation. AFAIK I did everything they asked (docs.podman.io/en/…/podman-systemd.unit.5.html).

The primary reason why I tried this was because I couldn’t figure out how to create a pod using compose.yaml either. If someone has answers to these questions, they would be much appreciated!

Thanks!

#selfhosted

threaded - newest

[deleted] on 08 Jun 21:02 next collapse

.

poVoq@slrpnk.net on 08 Jun 21:17 collapse

First of all ensure you are on Podman version 5, as otherwise the .pod files will not work as it was just very recently added.

Then it should be Pod=backup.pod in the container file.

And AFAIK the .pod file also needs an section like this:

[Install]
# Start by default on boot
WantedBy=multi-user.target default.target

After a systemctl daemon-reload the corresponding .service file will be called backup-pod.service.

If it fails to start you can do a journalctl -e -u backup-pod.service to see the error message.

just_another_person@lemmy.world on 08 Jun 23:00 next collapse

This is the most likely issue. Log output is a must, btw.

MigratingtoLemmy@lemmy.world on 09 Jun 05:57 collapse

Apologies for not answering earlier. I have since switched over to podman generate kube and podman play kube for managing my podman infrastructure. This plays in well with my plans since I can’t be dependent on systemd going forward. Thank you for your help.

With that said, I wanted to ask another question: when I try to run a container with podman run debian, it automatically pulls the debian container without a problem, however how is it that when I type podman pull docker.io/debian/debian it requires auth?

markstos@lemmy.world on 09 Jun 20:46 next collapse

Exactly what is the auto prompt you see?

anyhow2503@lemmy.world on 14 Jun 14:31 collapse

Pretty sure that the registry path for official images is “library” (at least it used to be). So it should be “docker.io/library/debian”, though I can’t double check at the moment.

MigratingtoLemmy@lemmy.world on 14 Jun 15:03 collapse

You’re right, except the problem was that I was on an old version of Podman (Debian problems lol) where Quadlet wasn’t even available