Как понять что используется buildkit?

Docker BuildKit - это интегрированная система сборки образов в Docker, предоставляющая более эффективную и гибкую альтернативу для стандартного процесса сборки образов Docker.

В стандартном процессе сборки, Docker использует Dockerfile для описания шагов, необходимых для создания образа. Однако, этот процесс может стать сложным и неэффективным при работе с большими и сложными проектами. Именно в таких ситуациях Docker BuildKit приходит на помощь.

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

1. Проверьте версию Docker: Docker BuildKit доступен в Docker версии 18.09 и выше. Проверьте, что у вас установлена поддерживаемая версия Docker.

2. Проверьте настройки сборки Docker: Проверьте файл конфигурации Docker daemon (обычно расположен в /etc/docker/daemon.json) на наличие параметра "builder": "buildkit". Если этот параметр указан, значит, Docker использует BuildKit вместо стандартного процесса сборки.

3. Запустите сборку с флагом драйвера сборки: Вы можете запустить сборку с флагом DOCKER_BUILDKIT=1 для явного указания Docker на использование BuildKit. Например:

DOCKER_BUILDKIT=1 docker build .

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

4. Проверьте вывод сборки: BuildKit предоставляет подробный вывод на каждом этапе сборки, включая информацию о конфигурации конкретного шага, какие слои были кэшированы и какие именно команды выполняются. Если вы видите подобный вывод во время сборки, это может указывать на использование BuildKit:

#1 [stage-1  1/2] FROM ...
#1 2.453 STEP 1/6: FROM ...
#1 2.453  ---> ...
...

5. Сравните время сборки: BuildKit может работать значительно быстрее, чем стандартный процесс сборки, особенно при использовании кэширования и параллельной сборки. Если вы замечаете значительное ускорение процесса сборки, это может также указывать на использование BuildKit.

Однако, следует также отметить, что использование BuildKit не всегда является оптимальным или необходимым для всех проектов. Оно может быть полезным при работе с большими проектами или при необходимости более экономного использования ресурсов.