Развертывание приложений с нулевым временем простоя с помощью CoreOS

У меня есть контейнер докеров, который я хочу развернуть в кластер CoreOS, который должен загрузить мое приложение из репозитория git.

Скажем, контейнер приложения запускает nginx/nodejs

Как мне его обновить?

Если я представляю контейнер и запускаю его, это работает в первый раз. Но во второй раз мне придется остановить/запустить контейнер с помощью флота, тогда я, очевидно, простоя. Должен ли я запускать новые контейнеры, которые получены из этого контейнера?

Ответ 2

Вместо того, чтобы вытаскивать приложение из github внутри вашего контейнера, вы должны испечь свой код приложения внутри вашего контейнера/изображения. Ваш контейнер должен начать свои услуги в течение нескольких секунд. Чтобы достичь нулевого времени простоя, вы должны хранить старый контейнер до запуска нового контейнера и готовы принимать новые соединения. Вы можете сделать это, отделив nginx в свой собственный контейнер и поддерживая его все время.