是否可以通过docker api告知docker-compose中指定的所有容器何时启动?
现在我有一个包含大量服务的docker-compose文件。
在每个服务的python入口点脚本中,我需要从所有其他服务中获取属性。
import docker
import socket
CLIENT = docker.from_env()
CONTAINERS = CLIENT.containers
HOSTNAME = socket.gethostname()
CURRENT_CONTAINER = CONTAINERS.get(HOSTNAME)
CURRENT_PROJECT = CURRENT_CONTAINER.attrs['Config']['Labels']['com.docker.compose.project']
CONTAINERS.list(filters={'name': CURRENT_PROJECT}, sparse=True)
# Right here I need a way to make sure all the containers in my docker-compose project have started.
# If there are 4 services in the docker-compose then I should have 4 containers in my list, otherwise I need to wait and refetch the list
我当前的解决方案是在docker-compose文件中,我在每个服务中都放置了一个Label,其中包含docker-compose文件具有的预期服务数量。
因此,当我列出容器时,我检查容器的数量是否与Expected_containers标签相同。
是否有更好的方法来完成此任务而无需将每个容器的预期数量的容器硬编码为标签?