У меня такой же вопрос.Я попытался с помощью докера составить restart_policy и обнаружил, что он не работает.
services: hello: deploy: restart_policy: условие: ...
ПРЕДУПРЕЖДЕНИЕ. Некоторые службы (hello) используют ключ 'deploy', который будет игнорироваться.Compose не поддерживает конфигурацию 'deploy' - используйте развертывание стека докеров для развертывания в рое.
См. Ответ здесь Docker: перезапустить контейнер только при перезагрузке?
Итак, я подумал о том, чтобы что-то сделать в Dockerfile, но в документах предлагается настроить внешний процесс для перезапуска контейнеров, используя ту же команду, которую мы используем для их нормального запуска.См. https://docs.docker.com/config/containers/start-containers-automatically/
Если политики перезапуска не удовлетворяют вашим потребностям, например, когда процессы вне Docker зависят от контейнеров Docker, вы можете вместо этого использовать диспетчер процессов, такой как upstart, systemd или supervisor.