dependent containers don't work anymore because of network_mode

swooosh@lemmy.world to Selfhosted@lemmy.world – 11 points –

whenever I try to run a podman container, it'll through:

Error: running container create option: container has joined pod 4f[long_string]b1f and dependency container 34[long_string]9cd is not a member of the pod: invalid argument

An example of a dependent container compose file looks like this:

services:
  # https://docs.linuxserver.io/images/docker-qbittorrent
  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: qbittorrent
    environment:
      - WEBUI_PORT=8090
      - PUID=0
      - PGID=0
    volumes:
      - ./config:/config:Z
      - ./files:/media:z
    restart: always
    depends_on:
      - gluetun
    network_mode: "container:gluetun"
services:
  # https://github.com/qdm12/gluetun
  gluetun:
    image: docker.io/qmcgaw/gluetun
    container_name: gluetun
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    ports:
      - 8001:8000 # gluetun
      - 8090:8090 # qbittorrent
    volumes:
      - ./config:/gluetun:Z
    environment:
      - KEYS=REDACTED
    restart: always
    privileged: true

It worked until yesterday. I updated to fedora 40. I am not sure if that is just a coincidence or if that's the reason. Should I downgrade to 39?

7

Generally to depend on a container it needs to be in the same compose project, so if you move gluetun into the one with qbittorrent it should work fine.

I've been running that since many months like that. Why did that break now ...

It works in the same file. I don't want to have 10 containers in the same compose file.

I checked, it works in the same file, thx.

Removing "depends: gluetun" does not work either

But that's like the whole point of docker compose. If you are just going to have 1 container per file what benefit are you even getting out of using a compose file?

Docker compose is just a setting file for a container. It's the same advantage you get using an ssh config file instead of typing out and specifying a user, IP, port, and private key to use each time. What's the advantage to putting all my containers into one compose file? It's not like I'm running docker commands from the terminal manually to start and stop them unless something goes wrong, I let systemd handle that. And I'd much rather the systemd be able to individually start, stop, and monitor individual containers rather than have to bring them all down if one fails.

Immich has multiple services running. Having that within one file is good in my opinion. Or nextcloud with an external database.

You're attempting to run the qb container in the gluetun network stack. You need to give it time to start. When they're in the same compose file they can be ordered properly but when they're different files it doesn't care.

Check out the full options (long form) to depends: and see if you can add a delay and a health check.

It has worked for months. Thank you. I'll se what I can do.