Как я могу запустить стек докера (из docker-compose.yml
) на одном узле док-станции, который автоматически запускается при перезагрузке системы?
Я использую docker-compose для создания приложения из нескольких служб, а затем использую docker stack deploy
для развертывания его на моем сервере в единственном экземпляре Docker Swarm.
В моем docker-compose.yml
я определил свои службы с помощью политики перезапуска:
deploy:
restart_policy:
condition: any
delay: 5s
max_attempts: 3
window: 120s
placement:
constraints: [node.role == manager]
который imho должен принудительно запускать / перезапускать сервис. Но когда сервер / докер перезапускается, сервисы не запускаются. Есть ли какой-нибудь простой способ сделать это?
docker service list
будет показывать:
ID NAME MODE REPLICAS IMAGE PORTS
s9gg88ul584t finalyzer-prod_backend replicated 0/1 registry.gitlab.com/hpoul/finalyzer/finalyzer-backend:latest *:8081->8080/tcp
vb9iwg7zcwxd finalyzer-prod_mongoadmin replicated 0/1 mrvautin/adminmongo:latest *:8082->1234/tcp
qtasgtqi7m0l finalyzer-prod_mongodb replicated 0/1 mongo@sha256:232dfea36769772372e1784c2248bba53c6bdf0893d82375a3b66c09962b5af9
wdnrtlbe8jpw finalyzer-prod_pgdb replicated 0/1 postgres@sha256:73d065c344b419ce97bba953c7887c7deead75e0998053518938231cd7beb22c
поэтому он распознает, что должен запустить 1 узел, но не масштабирует его. Как правильно заставить рой, сервис или стек докера масштабировать все сконфигурированные сервисы до их настроенных значений после перезапуска сервера (или перезапуска демона докера)?