this post was submitted on 28 Aug 2023
42 points (100.0% liked)

Linux

48239 readers
565 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I've been messing around with podman in Arch and porting my self-hosted services over to it. However, it's been finicky and I am wondering if anybody here could help me out with a few things.

  1. Some of my containers aren't getting properly started up by podman-restart.service on system reboot. I realized they were the ones that depended on my slow external BTRFS drive. Currently its mounted with x-systemd.automount,x-systemd.device-timeout=5 so that it doesn't hang up the boot if I disconnect it, but it seems like Podman doesn't like this. If I remove the systemd options the containers properly boot up automatically, but I risk boot hangs if the drive ever gets disconnected from my system. I have already tried x-systemd.before=podman-restart.service and x-systemd.required-by=podman-restart.service, and even tried increasing the device-timeout to no avail.

When it attempts to start the container, I see this in journalctl:

Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Got automount request for /external, triggered by 3130 (3)
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Automount point already active?
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Got automount request for /external, triggered by 3130 (3)
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Automount point already active?
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Got automount request for /external, triggered by 3130 (3)
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Automount point already active?
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Got automount request for /external, triggered by 3130 (3)
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Automount point already active?
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Got automount request for /external, triggered by 3130 (3)
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Automount point already active?
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Got automount request for /external, triggered by 3130 (3)
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Automount point already active?
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Got automount request for /external, triggered by 3130 (3)
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Automount point already active?
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Got automount request for /external, triggered by 3130 (3)
Aug 27 21:15:46 arch-nas systemd[1]: external.automount: Automount point already active?
Aug 27 21:15:46 arch-nas systemd[1]: libpod-742b4595dbb1ce604440d8c867e72864d5d4ce1f2517ed111fa849e59a608869.scope: Deactivated successfully.
Aug 27 21:15:46 arch-nas conmon[3124]: conmon 742b4595dbb1ce604440 : runtime stderr: error stat'ing file `/external/share`: Too many levels of symbolic links
Aug 27 21:15:46 arch-nas conmon[3124]: conmon 742b4595dbb1ce604440 : Failed to create container: exit status 1
  1. When I shutdown my system, it has to wait for 90 seconds for libcrun and libpod-conmon-.scope to timeout. Any idea what's causing this? This delay gets pretty annoying especially on an Arch system since I am constantly restarting due to updates.

All the containers are started using docker-compose with podman-docker if that's relevant.

Any help appreciated!

EDIT: So it seems like podman really doesn't like systemd automount. Switching to nofail, x-systemd.before=podman-restart.service seems like a decent workaround if anyone's interested.

all 19 comments
sorted by: hot top controversial new old
[–] greyscale@lemmy.sdf.org 1 points 1 year ago (4 children)

Migrating from docker to podman... why?

[–] Faceless@lemmy.ml 16 points 1 year ago (1 children)

Podman is fully open source, there is podman desktop

[–] Static_Rocket@lemmy.world 2 points 1 year ago (3 children)

I just wish podman-compose wasn't so scuffed. I submitted a PR about some garbage months ago and it just seems dead.

[–] crmsnbleyd@sopuli.xyz 1 points 1 year ago

You're supposed to use podman kube play instead of that

[–] Molecular0079@lemmy.world 1 points 1 year ago (1 children)

What happens if you use regular docker-compose but with podman-docker? I've gotten better results with that.

[–] Static_Rocket@lemmy.world 1 points 1 year ago (1 children)

It just bothers me that I have to use a tool outside of the ecosystem for that. Doesn't it also behave differently though? Like doesn't it assume everything is root when you use the socket required for docker-compose?

[–] Molecular0079@lemmy.world 1 points 1 year ago (1 children)

Yes, I think it does, but thats how docker-compose works with docker anyways so it's a closer experience. I think if you're using docker-compose files you sorta want that docker-like experience no?

I get where you're coming from though. It would be nice to run docker-compose files completely rootless with podman-compose.

[–] Static_Rocket@lemmy.world 1 points 1 year ago

Eh, I don't mind learning a new config if the tool requires it. I just want to define run commands in yaml and have it auto generate pods and startup scripts.

[–] letbelight@lemmy.ml 1 points 1 year ago

You need to mention muayyad-alsadi, because the only one who maintain it now seems only him. Just keep mentioning, and he will review the PR.

[–] GustavoM@lemmy.world 8 points 1 year ago (1 children)

I'm not a docker expect to be honest... but I'm pretty sure its because podman runs "rootless" while docker does not. Even if docker provides ways to mitigate that... its always great to have a "just werks" option without having to fiddle through system files, permissions and such.

[–] vector_zero@lemmy.world 6 points 1 year ago (1 children)

Docker has a rootless capability now. I still use podman personally, but I think either one is fine nowadays. If anything, it's up to personal preference about which corporate boot tastes better.

[–] letbelight@lemmy.ml 1 points 1 year ago

3 years after dan walsh mentiong and opening PR and closed... docker could just merge and accept it that time.. and now they got spilt... **** docker...

[–] Molecular0079@lemmy.world 7 points 1 year ago

Mostly for the better integration with Cockpit, but I do eventually want to play around with some of the rootless container stuff that podman has.

[–] BaconIsAVeg@lemmy.ml 2 points 1 year ago

Mainly I looked at it to see if it would be viable for our non-techie contract developers who are forced to license Docker Desktop because they're on Windows.

Yes, $60/year/user isn't that much, however the procurement process for some of these large contracting firms will make your balls shrivel up and fall off.