Я только что получил MacBook с работы и использую его для создания образов докеров. Обычно сборка докера показывает полный журнал (т. е. ls -la
показывает cwd). По крайней мере, это то, к чему я привык на своей Linux-машине.
Однако на macbook отображается только краткий обзор: (фактический вывод консоли)
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 40B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/debian:stretch-slim 1.1s
=> [internal] load build context 0.0s
=> => transferring context: 58B 0.0s
=> [1/16] FROM docker.io/library/debian:stretch-slim@sha256:eb436e834ba416c45359aa0709febef17fdea65ab6a8f4db12016aa2fa63be0c 0.0s
=> CACHED [2/16] RUN apt-get update && apt-get upgrade -y 0.0s
=> CACHED [3/16] RUN apt-get install wget -y 0.0s
=> CACHED [4/16] RUN wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 0.0s
=> CACHED [5/16] RUN tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 0.0s
=> CACHED [6/16] RUN mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql-5.7.22 0.0s
=> CACHED [7/16] RUN ls -la 0.0s
=> CACHED [8/16] RUN mv mysql-5.7.22 /usr/local/ 0.0s
=> CACHED [9/16] RUN groupadd mysql 0.0s
=> CACHED [10/16] RUN useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql 0.0s
=> CACHED [11/16] RUN chown -R mysql /usr/local/mysql-5.7.22/ 0.0s
=> CACHED [12/16] RUN chgrp -R mysql /usr/local/mysql-5.7.22/ 0.0s
=> CACHED [13/16] COPY my.cnf /etc/ 0.0s
=> CACHED [14/16] COPY startup.sh . 0.0s
=> CACHED [15/16] RUN ls -la 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:d93a0842352d0980be6ba4b57fdd6cad18818b7527bedecfb706e416b7fb6062 0.0s
=> => naming to docker.io/library/customsql
Шаги 7 и 15 должны показать мне результаты, но они просто опущены. (Я знаю, что это кешированный результат, но он не появился, когда я изменил Dockerfile и перестроил слой).
настройка --progress=plain
не принесла пользы. На самом деле он просто изменил цвет с фиолетового на белый (HideThePainHarold.jpg).
Любая помощь будет оценена.
Сам нашел ответ: по-видимому, сборка Docker на osx автоматически настраивается для использования buildkit, что маскирует большую часть вывода отладки по умолчанию.
Я удалил его из конфигурации JSON, и он работает.
Удалил что именно? Какой джсон? демон.json?
@chocalaca Это опция {"buildkit": true} в daemon.json. В MacOs вы можете найти его сейчас под значком Docker на рабочем столе (кит) -> настройки -> Docker Engine.
@ user3361462 Спасибо!
Просто установите export DOCKER_BUILDKIT=0 в вашей оболочке....
Если вы используете buildx для работы с несколькими архитектурами, то это не сработает. Вместо этого используйте эту переменную env... export BUILDKIT_PROGRESS=plain
Я не могу вспомнить 2021 год, но в 2023 году формат plain
был довольно подробным, обычно по 3 строки в каждой строке, так как он регистрирует строку, хэш и сообщение о завершении. BUILDKIT_PROGRESS
является либоauto
(по умолчанию), plain
или tty
, ни один из них не возвращает прежнее поведение «простого» простого вывода. Жалко или чего-то не хватает?
В дополнение к Simons Answer, если вы ищете постоянную настройку.
Чтобы отключить Docker BuildKit по умолчанию, установите для конфигурации демона в функции /etc/docker/daemon.json
значение true и перезапустите демон:
{ "features": { "buildkit": false } }
Спасибо, это спасло мою задницу. Без вывода сборки по умолчанию сложно отлаживать сложные шаги в процессе сборки докеров.