Есть ли способ через 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. Я поместил метку в каждый сервис, который содержитожидаемое количество сервисов, которые есть в файле docker-compose.
Поэтому, когда я перечисляю контейнеры, я проверяю, что количество контейнеров совпадает с меткой Ожидаемые_контейнеры.
Есть ли лучший способчтобы сделать это без жесткого кодирования ожидаемого количества контейнеров в качестве метки в каждом контейнере?