Как получить логи при сбое сборки в docker-py?

Если я создаю образ с использованием высокоуровневого docker-py sdk, я получаю ошибку BuildError при ошибке. Например,

try:
    client.images.build(...)
except:
    print("Hey something wrong with image build!")

Я знаю, что могу использовать низкоуровневый клиентский API для прямого подключения и потоковой передачи журналов, см. Как я могу определить, когда docker-py client.build() завершается неудачно.

Есть ли способ получить полезный отладочный вывод из скрипта сборки образа, не переходя на API нижнего уровня?

1 ответ

Начиная с Docker 3.x, ошибка BuildError содержит build_log переменная, которая является генератором вывода:

try:
    return client.images.build(...)
except BuildError as e:
    print("Hey something went wrong with image build!")
    for line in e.build_log:
        if 'stream' in line:
            logger.error(line['stream'].strip())
    raise
Другие вопросы по тегам