Вопрос очень сложный. Скорее всего, если Вы хотите зависимость по порядку запуска - Вы что-то делаете не так.
Принципиально вариантов три
1. использовать костыли вроде wait-for-it.sh - которые будут держать контейнер в состоянии запущен, но сервис внутри не стартанул, пока зависимость не стартанет.
2. Вообще плюнуть на зависимости. Ну, рестартуется зависимый сервис - раз на пятый, когда зависимость стартанет, запустится. Лишь бы правильно перезапуск был сделан. Но это может быть неприемлемо, если в докере что-то тяжёлое, вроде джава машины, которая долго прогревается.
3. Использоваться внешние решения. Начиная от "давайте не будет использовать restart: always в докере и засунем docker-compose up в systemd юнит" и кончая скриптами или оркестраторами.