1

我有以下设置:

  • 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作为基础映像)

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

4

0 回答 0