Hi, There is work going on to implement systemd's mechanism for notifying when an application is ready (sd_notify): https://github.com/coreos/rkt/issues/1464
That's useful when the rkt pods are started as systemd services. When this work in rkt is done, a rkt pod (e.g. PostgreSQL) would be able to notify systemd on the host when it is ready to receive requests (fully initialized), and systemd on the host could then only start other dependencies (e.g. another rkt pod connecting to PostgreSQL). For this to work, applications must implement the sd_notify mechanism. But I see that PostgreSQL has support for sd_notify: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=7d17e683fcc28a1b371c7dd02935728cd2cbf9bf Since sd_notify is not there yet in rkt, it is more difficult but in some cases it is possible to use socket activation when the dependency can be expressed in terms of a client connecting to the socket of a server. See "Socket-activated service": https://coreos.com/rkt/docs/latest/using-rkt-with-systemd.html Cheers, Alban On Fri, Jul 15, 2016 at 2:15 AM, Derek Mahar <derek.ma...@gmail.com> wrote: > What is the recommended approach to synchronizing containers in CoreOS? For > example, how might CoreOS ensure the following container execution order at > startup? > > 1. Start PostgreSQL Server > 2. Create schema (using separate one-shot Liquibase container) > 3. Launch application > > The application cannot run without its database schema and Liquibase cannot > create the database schema without PostgreSQL Server being ready to receive > SQL statements. Which mechanisms in CoreOS can we use to guarantee this > ordering? > > Thank you, > > Derek