Web service tries to start before app is ready #152
Open
opened 2026-10-22 08:08:25 +00:00 by amras
·
7 comments
No Branch/Tag Specified
main
renovate/ghcr.io-nextcloud-releases-whiteboard-2.x
kc_stable
mitigations_php
version_35
after-pr-143-cherry-pick
pr-143-review
renovate/docker.elastic.co-elasticsearch-elasticsearch-9.x
pr-125-v2
pr-125
renovate/mariadb-13.x
trusted-domains
renovate/pgautoupgrade-pgautoupgrade-18.x
pr-15.2.0+34.0.2-fpm
pr-14.2.0+33-fpm
fix-pgautoupgrade-max-connections
upload-limit
feature/imaginary
15.0.1+34.0.5-fpm
15.0.0+34.0.5-fpm
14.6.0+33-fpm
14.5.1+33.0.9-fpm
14.5.0+33.0.9-fpm
14.4.0+33.0.9-fpm
14.3.0+33.0.9-fpm
14.2.0+33.0.9-fpm
14.1.2+33.0.9-fpm
14.1.1+33.0.8-fpm
14.1.0+33.0.7-fpm
14.0.1+33.0.7-fpm
14.0.0+33.0.7-fpm
13.2.0+32-fpm
13.1.5+32.0.13-fpm
13.1.4+32.0.13-fpm
13.1.3+32.0.13-fpm
13.1.2+32.0.13-fpm
13.1.1+32.0.12-fpm
13.1.0+32.0.11-fpm
13.0.1+32.0.3-fpm
13.0.0+32.0.3-fpm
12.1.0+31.0.6-fpm
12.0.1+31.0.6-fpm
12.0.0+31.0.6-fpm
11.4.0+30.0.6-fpm
11.4.0+30.0.10-fpm
11.3.0+30.0.6-fpm
11.2.0+30.0.6-fpm
11.1.0+30.0.6-fpm
11.0.1+30.0.4-fpm
11.0.0+30.0.4-fpm
10.0.0+30.0.4-fpm
9.2.0+29.0.8-fpm
6.0.11+28.0.10-fpm
6.0.10+28.0.10-fpm
6.0.9+28.0.10-fpm
9.1.2+29.0.5-fpm
6.0.8+28.0.5-fpm
6.0.7+28.0.5-fpm
9.1.0+29.0.5-fpm
9.0.0+29.0.5-fpm
6.0.6+28.0.5-fpm
8.0.1+29.0.3-fpm
8.0.0+29.0.1-fpm
7.0.3+29.0.1-fpm
6.0.5+28.0.5-fpm
7.0.2+29.0.1-fpm
7.0.1+29.0.1-fpm
7.0.0+29.0.0-fpm
6.0.4+28.0.5-fpm
6.0.3+28.0.5-fpm
6.0.2+28.0.5-fpm
5.0.3+27.0.1-fpm
6.0.1+28.0.2-fpm
6.0.0+28.0.1-fpm
5.2.0+27.1.5-fpm
5.1.1+27.1.5-fpm
5.1.0+27.1.3-fpm
5.0.2+27.0.1-fpm
5.0.1+27.0.1-fpm
5.0.0+27.0.0-fpm
4.0.7+26.0.2-fpm
4.0.6+26.0.2-fpm
4.0.5+26.0.2-fpm
4.0.4+26.0.2-fpm
4.0.3+26.0.2-fpm
4.0.2+26.0.2-fpm
4.0.1+26.0.1-fpm
4.0.0+26.0.1-fpm
3.3.2+25.0.6-fpm
3.3.1+25.0.5-fpm
3.3.0+25.0.5-fpm
3.2.0+25.0.4-fpm
3.1.2+25.0.4-fpm
3.1.1+25.0.1-fpm
3.1.0+25.0.1-fpm
3.0.1+25.0.1-fpm
3.0.0+25.0.1-fpm
2.1.4+24.0.6-fpm
2.1.3+24.0.5-fpm
2.1.2+24.0.3-fpm
2.1.1+24.0.2-fpm
2.1.0+24.0.0-fpm
2.0.0+23.0.4-fpm
1.0.0+23.0.1-fpm
Milestone
No items
No Milestone
Assignees
3wordchant
aadil (Aadil Ayub)
abra-bot (Abra Bot)
ammaratef45
amras (Sarma)
BornDeleuze (Born Deleuze)
Brooke
carla
cas (Cassowary)
coopcloud
dannygroenewegen (Danny Groenewegen)
decentral1se (d1)
fauno (fauno)
hex (Josh Dukes)
ineiti (Linus Gasser)
javielico (Javielico)
jjsfunhouse
kawaiipunk (KawaiiPunk)
knoflook
moosemower
moritz
notplants
oxaliq (sorrel)
p4u1 (p4u1)
renovate-bot (Comrade Renovate Bot)
simon
stevensting (stevensting)
trav (Trav Fryer)
yksflip
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: coop-cloud/nextcloud#152
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Current behavior: The
appservice takes several minutes to start and reach a healthy state. In the meantime,webattempts deployment over 10 times, reporting "unhealthy" each time.Proposed solution: The
depends-onattribute is already set onweb. We should probably switch from the short syntaxto the long syntax
More info on the compose file reference
Fix "depends-on" orderto Web service starts before app is readyWeb service starts before app is readyto Web service tries to start before app is readyMight be good to do a full pass of dependencies and ensure other services don't start too early either.
Did you try this out? I always thought (and also experienced, IIRC), that docker swarm ignores
depends-on. Here is an old documentation which states so: https://github.com/docker/compose/blob/v1/docs/Compose%20file%20reference%20(legacy)/version-3.md#depends_onClaude proposes this instead:
Fixes that do work in Swarm:
resolver 127.0.0.11 valid=10s;
set $php_upstream {{ env "STACK_NAME" }}_app:9000;
fastcgi_pass $php_upstream;
This replaces the upstream php-handler block. Until app is up, requests get a 502 instead of nginx crashing.
stops depending on app.
Oh, interesting. The new docs don't mention the swarm limitation - I wonder if it's been removed. If I find the time I'll run some experiments, unless someone else beats me to it.
None of the workarounds you propose spark joy. If the swarm limitation is still applicable, my vote would be to leave it as-is, and just let
webspin its tires for a few minutes.According to https://github.com/docker/docs/issues/21079 they removed it, as docker swarm is no longer officially part of docker...
So we should perhaps remove all
depends_onto make sure nobody thinks this is actually doing something useful :)Now that I think about it: usually when I
deploynextccloud, theappis started after all other services - I wonder if that's a coincidence, or what's happening there?Looking through some more docs, looks like "all the services keep restarting until the stack works" is the design intent in swarm.
Agree that we should remove
depends_onfrom the recipe. Maybe even make a note in the maintainer's handbook.I assume that's a combination of the app having an internal wait for the db connection, and nextcloud just being a bit bloated.
and mental bias - I just redeployed, and it was another service starting as the latest...