Как подключиться к промежуточному док-контейнеру при сборке с помощью buildkit

Недавно я услышал о Buildkit и пытался использовать его с Docker.

Я использую DOCKER_BUILDKIT=1 docker build . -t experimental для создания своего Dockerfile.

Мой Dockerfile не собирается должным образом из-за отсутствия некоторых зависимых пакетов.

Что я хочу сделать, так это подключиться к последнему работающему промежуточному контейнеру и исправить проблему, скажем, с помощью apt инструментов.

При сборке без Buildkit это было бы возможно с хеш-значениями промежуточных контейнеров из вывода терминала.

Однако вывод Buildkit не дает мне таких значений. Итак, есть ли способ получить к ним доступ?

Заранее спасибо.


person Jinu    schedule 30.03.2020    source источник


Ответы (1)


Я думаю, что на данный момент это невозможно, см. buildkit/issue#1053.

Но BuildKit по-прежнему кэширует все слои, поэтому вы можете использовать обходной путь.

  • Проверяя изображение до неудачной команды RUN, закомментируйте ошибочную и все последующие команды RUN. Повторно запустите docker build, а затем выполните docker run, чтобы проверить изображение.

  • Проверяя изображение после неудачной команды RUN, добавьте || true в конец вашей команды RUN, чтобы заставить команду выполниться успешно. Повторно запустите docker build, а затем выполните docker run, чтобы проверить изображение.

person Moritz    schedule 26.09.2020
comment
Упомянутый билет был закрыт. Это актуально сейчас: github.com/moby/buildkit/issues/1472 PS. Я не могу редактировать, потому что очередь редактирования заполнена - person pmav99; 19.11.2020