Using compose I want to start a service only after another service has exited with code 0.
I have mutiple needs for this functionality. The basic need is where I have:
- database service
- database migration service
- application service
The database service will start an empty database. My app needs it's schema setup in the database so I have a second service which will do this when it is run. When it is done this service will exit successfully - I can see this in my docker compose log file:
webservices_kong-migration_1 exited with code 0
I do not want the application service to start until after the database migration has completed.
I have the following in my docker-compose file for the application service:
depends_on: kong-database: condition: service_healthy kong-migration: condition: service_started
I know this is wrong because I can see in my docker-compose log that the application is started after the migration has started but before it has completed, causing the application to fail.
(I have been taking https://github.com/Kong/docker-kong/blob/master/compose/docker-compose.yml as an example)
Does docker-compose have functionality to do this or should I be considering another method?