Классный доклад, спасибо. Есть один вопрос, я хочу чтобы у меня из CI/CD Gitlab после сборки контейнера он сразу разворачивался на staging (одна отдельная машинка), до этого я был на docker-compose и тупо из CI/CD по ssh выполнял (docker-compose down && docker-compose up -d) на staging, расскажите как это делать на docker swarm и может более правильно если мой подход ошибочен?
Спасибо за фидбек! Eсли идти по пути аналогичному команде docker run, то можно просто использовать docker service update: docs.docker.com/engine/swarm/swarm-tutorial/rolling-update. Но это обновляет конкретный сервис независимо от стека приложений. Если приложения собираются в docker stack (аналогия docker-compose в swarm mode), то можно использовать docs.docker.com/engine/reference/commandline/stack_deploy. Это найдет все обновления среди стека и обновит только нужные из сервисов. Если сильно заморачиваться, то можно смотреть в сторону того же terraform. У нас, кстати, в сообществе так сайт разворачивается (docker swarm + terraform + shippable + yandex cloud): github.com/krddevdays/infrastructure