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
- 它的飞行路线
- 应用
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?