Comment on Question about using gluetun for other containers
sarahreid@lemmy.world 48 minutes ago
Yeah, depends_on only works inside a single compose file/project, so it can’t see gluetun from stack 2 — that’s why you’re getting the undefined error. There’s no built-in cross-stack depends_on, unfortunately.
The cleanest fix IMO is to merge them into one compose file if you can, then depends_on with service_healthy works for everything. If you really want to keep them seperate, a couple of options:
- Start stack 1 first, then have a small wait script before stack 2, something like looping on docker inspect until gluetun’s health status is healthy, then docker compose -f stack2.yml up -d. A bit clunky, but it works and it’s explicit.
- Or use a systemd unit or a wrapper script that runs the two up commands in order, with the wait in between.
- What I wouldn’t do is just add a fixed sleep — gluetun can take a while to bring the tunnel up, and a sleep that works today will bite you on a slow day.
One caveat too: service_healthy only means the container is healthy, not neccessarily that the VPN tunnel itself is fully up, so it’s still worth checking the torrent client actually has the VPN IP before you trust it. FYI, you can test that from inside the client container with curl to an IP checker.
IronKrill@lemmy.ca 39 minutes ago
Darn. I had the same question as OP but have been working around it by combining everything into the same stack. It’s just a bit of a pain to edit the stack every time I want to test something or retire a service.
Good work-arounds though! Maybe I should move to a script-based startup… Only trouble is all my containers are tagged with
restart: unless-stoppedso Docker restarts all of it at once on reboot which would mess up the order. Hmm.