We were using Rancher 1.1.4 until today and after upgrading to v1.2.0 we are noticing a change in behavior related to how services come up.
We are using cattle for orchestration, in our docker-compose.yml we have various services with links between many of them. Earlier, with v1.1.4 when bringing up services, services would come up in order e.g if I have two services, mongo
webserver
and webserver
has a link to mongo
, then mongo
would come up first and only when its healthy webserver
service will get started.
With v1.2.0 now all the services defined in docker-compose.yml start up around the same time without waiting for linked service to become active first. Is it possible to keep the old behavior of service startup order while using v1.2.0?
Can you provide a docker-compose.yml so we can try to reproduce to see the difference?
This working at all in 1.1 was basically just a coincidence due to launching the containers being serialized and slower in general. It has never waited for the health check to pass, and for anything with significant startup time wouldn’t be available. Waiting for the healthcheck (if present) to pass would be far slower, and be impossible for anything with cyclic dependencies.
If you application has dependencies it needs to be able to wait for them (e.g. https://github.com/vishnubob/wait-for-it) and/or keep trying to reconnect when it can’t. These same properties will be needed to handle when one of them fail and gets rescheduled.
Ok, thanks for clarifying that. Is there any plan to support depends_on
construct from docker-compose?