Docker 在启动时管理容器依赖关系

Docker 在启动时管理容器依赖关系,docker,containers,supervisord,orchestration,etcd,Docker,Containers,Supervisord,Orchestration,Etcd,我有以下设置: PostgreSQL 它的飞行路线 应用 我需要以以下方式链接它们:Flyway等待DB启动,App等待Flyway完成迁移 我考虑使用etcd发布一些密钥,其他容器等待它们。因此,基本上,每个容器的入口点应如下所示: #!/bin/bash status=1 while $status != 0; do for kv in $DEPENDENT_KEYS: # curl to etcd, get the key if $value ==

我有以下设置:

  • PostgreSQL
  • 它的飞行路线
  • 应用
我需要以以下方式链接它们:Flyway等待DB启动,App等待Flyway完成迁移

我考虑使用
etcd
发布一些密钥,其他容器等待它们。因此,基本上,每个容器的入口点应如下所示:

#!/bin/bash
status=1
while $status != 0; do
    for kv in $DEPENDENT_KEYS:
       # curl to etcd, get the key
       if $value == true then
         status = 0;
       else 
         status = 1;
       fi;
done;

# container-related startup
# post to etcd that container is ready
# get back to _container-related startup_
我的问题是:

1) 我做得对吗

2) 如何在不安装太多额外实用程序的情况下从进程分离并重新连接到进程(假设我使用busybox/debian作为基本映像)

另外,我想到了supervisord,它离我们很近,但我不知道如何让流程在那里等待(并将它们链接起来)
P.P.S.所有设置均由Docker Compose执行。

查看runit、s6、daemontools?查看runit、s6、daemontools?