Bootstrap && уничтожить && запустить

Это вопрос совсем начального уровня.

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

Но почему всегда рекомендуется именно такой порядок:

./launcher bootstrap .. && ./launcher destroy .. && ./launcher start ..

Я в какой-то мере понимаю, что в первый раз так делать — нормально. Давайте будем честны: я вообще не понимаю разницы между bootstrap и rebuild, но всемогущий ИИ сказал мне, что bootstrap нужно делать только в первый раз, потому что это какая-то странная работа для разработчиков, а после этого каждый раз достаточно просто rebuild.

Так почему не просто ./launcher rebuild web_only и всё? Потому что если я сначала сделаю destroy, то при неудачном rebuild у меня не останется ничего, чтобы перезапустить, верно?

Я понимаю, что при обновлении всего нужно сначала остановить web_only, затем выполнить действия с данными, и в последнюю очередь — снова web_only.

Если вы выполните пересборку, контейнер будет остановлен, затем запустится процесс инициализации (bootstrap), после чего старый контейнер будет уничтожен и запущен новый.

Пересборка не уничтожает существующий контейнер (пока не будет готов новый для запуска вместо него).

Если процесс инициализации не удался, вы можете самостоятельно перезапустить старый контейнер.

В первый раз нет причин не выполнять пересборку.

При последующих сборках лучше использовать инициализацию (bootstrap), чтобы существующий контейнер мог продолжать обрабатывать запросы, пока готовится новый контейнер.

Для контейнера с данными всегда рекомендуется выполнять пересборку, так как нежелательно, чтобы два экземпляра базы данных одновременно модифицировали одни и те же файлы.

При обновлении PostgreSQL необходимо сначала остановить все компоненты (веб-сервер не может работать без базы данных), а затем пересобрать контейнер с данными.

Пересборка также выполняет команду «git pull», поэтому вы можете использовать инициализацию (bootstrap) вместо неё, чтобы иметь полный контроль над этим процессом.

У меня всё ещё возникают трудности с пониманием концепции контейнеров, и в интернете много всего, что выше моего понимания.

Но теперь я знаю порядок: что, когда и (почти) почему.

Спасибо.

Это как жёсткий диск для целого компьютера. Контейнер — это просто целый компьютер, к которому можно подключиться только определёнными способами (через порты или через файлы, которые он обновляет и которые доступны операционной системе.