docker api - как определить, когда все контейнеры в файле docker-compose запущены - PullRequest
0 голосов
/ 21 мая 2019

Есть ли способ через 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.

Поэтому, когда я перечисляю контейнеры, я проверяю, что количество контейнеров совпадает с меткой Ожидаемые_контейнеры.

Есть ли лучший способчтобы сделать это без жесткого кодирования ожидаемого количества контейнеров в качестве метки в каждом контейнере?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...