По правде говоря, я должен начать с того, что я новичок в этой платформе и в коде, поэтому не имею представления о том, как сейчас работает rebuild «под капотом». Однако моё текущее понимание процесса реконструкции таково:
- Остановка текущего контейнера.
- Создание нового контейнера с данными из исходного дерева.
- Ожидание запуска вами нового контейнера.
С точки зрения DevOps, почему нельзя собрать новый контейнер (возможно, в другой ветке или временной директории), пока старый ещё работает? Это, казалось бы, сделало бы замену старого контейнера новым гораздо более быстрым процессом (по крайней мере, с точки зрения простоя), возможно, на порядок секунд, а не минут.
Если контейнеры используют тома хранилища, которые не уничтожаются при пересборке контейнера, я даже не уверен, что конфигурационные или изменения базы данных (например, новые сообщения) нужно как-то специально обрабатывать для этого случая. Это означает, что процесс сборки контейнера не должен быть настолько сильно связан с его состоянием.
Это просто вопрос, на который ещё никто не обратил внимания, или существует какое-то архитектурное решение, требующее остановки одного контейнера перед сборкой другого?