在启动时管理容器依赖项

时间:2016-02-02 00:45:36

标签: docker containers supervisord orchestration etcd

我有以下设置:

  • 的PostgreSQL
  • Flyway for it
  • 应用

我需要以下列方式链接它们: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作为基本映像)

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

0 个答案:

没有答案