Docker Compose не поддерживает это.
Существует более или менее стандартный трюк для службы B, ожидающей, пока служба A не начнет запуск . Если у одной службы есть способ увидеть другую (например, служба A выполняет сетевую службу, видимую в частной сети Docker), тогда служба B может ожидать запуска A, затем ждать остановки B и выполнять свою работу. , Однако вы не сможете увидеть, успешно ли вышел A.
Если вам удобно предоставлять сервису B потенциально неограниченный root-доступ на хосте, вы можете смонтировать сокет Docker в его контейнер, а затем он сможет ожидать выхода из сервиса A. Возможно, было бы чище направить какую-то службу оркестровщика C, которая запустила A, увидела, что она выходит, а затем запустила B.
(Если вы были в Kubernetes, у него есть pre-stop hook , который может запустить скрипт в сервисе A до его выхода, но это довольно тяжелый ответ.)