Назад к заметкам

опубликовано 2026-04-02

Перестаньте использовать `:latest`

l-you avatarLiterally You

Не используйте тег `:latest` для развёртываний.

`latest` — не версия. Это «плавающая» метка. Контроль версий должен определять, какие внешние версии использует ваша система. Если образ меняется, файл Compose тоже должен меняться.

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

Они также делают инструменты действительно полезными. Renovate может сообщить, что существует более новый образ и что ваша кодовая база всё ещё указывает на старый. Зафиксированный тег или digest можно найти поиском. Вы можете посмотреть репозиторий и ответить на простые вопросы: что развернуто, что изменилось, что нужно откатить.

С `:latest` этот контроль исчезает. Вы не можете надёжно отслеживать развернутые версии по кодовой базе. Вы не можете легко проводить аудит устаревших образов. Когда развёртывание Docker Compose ломается и нужно откатиться, `:latest` превращает простую проблему версии в гадание.

Это касается даже самохостинга. Возможно, особенно его, потому что именно там людям сильнее всего хочется полениться.