Перейти к содержанию

Выбор минимального runtime image

Ненормативный пример. Запрещено напрямую копировать ссылку на image в прикладной проект. Для конкретного приложения выбор, точная версия и используемый при наличии digest проверяются согласно DEP-IMG-004, DEP-IMG-007, DEP-IMG-012 и DEP-IMG-013.

Ограничения применимости: пример сравнивает только форму Linux runtime image и не определяет допустимый registry, базовый image, версии runtime-зависимостей, состав приложения или production-конфигурацию.

Статически скомпонованное приложение

gcr.io/distroless/static-debian13:nonroot является кандидатом для приложения, которому не требуются динамический runtime, shell и package manager.

Проверочный список перед использованием:

  • архитектуру процессора и формат бинарного файла;
  • отсутствие динамических библиотек;
  • наличие требуемых корневых сертификатов и данных часовых поясов;
  • запись только в явно разрешённые каталоги;
  • работу health check и graceful shutdown;
  • точный version tag в явно объявленном registry и, желательно, утверждённый источник и актуальный immutable digest.

Tag nonroot не заменяет проверку effective UID/GID и прав файлов, скопированных из build-стадии.

Динамический или интерпретируемый runtime

Этот image не подходит напрямую для Node.js, Python, PHP и динамически скомпонованных бинарных файлов. Для них выбирается утверждённый минимальный image с необходимым runtime и совместимыми системными библиотеками.

Выбор Alpine-based image только из-за размера небезопасен без проверки совместимости приложения и native-зависимостей с musl libc.