Команда restart запускает тот же контейнер с теми же настройками. Она полезна, когда процесс внутри завис или завершился, но не применяет новую конфигурацию сервиса.
Например, после изменения переменной окружения restart оставит старое значение:
docker compose restart api
Переменные окружения контейнера задаются при его создании. Поэтому после правки compose.yaml сервис нужно обновить через up:
docker compose up -d api
Compose сверит описание сервиса с существующим контейнером и применит изменённые параметры. Данные в именованных volumes при этом сохраняются.
Если менялся код, включённый в Docker-образ, добавь сборку:
docker compose up -d --build api
Флаг --build пересобирает образ перед запуском контейнера. Если используется образ из registry, сначала скачай его:
docker compose pull api
Затем запусти сервис на новой версии образа:
docker compose up -d --no-deps api
Флаг --no-deps не трогает зависимые сервисы, поэтому используй его только если они уже запущены и не требуют обновления.
До деплоя проверь, какую конфигурацию Compose получил после объединения файлов и подстановки переменных:
docker compose config
В выводе могут оказаться подставленные значения переменных, поэтому не публикуй его без проверки на секреты. Пересоздание может прервать соединения, так что в production учитывай health checks и порядок обновления зависимых сервисов.
➡️ DevOps Ready | #совет
