私の抜粋Dockerfile
:
FROM node:12.18.0
RUN echo "hello world"
RUN psql --version
実行しても、docker build .
これら 2 つのコマンドの出力はキャッシュされていない場合でも表示されません。ドキュメントにdocker build
は、デフォルトでは詳細であると記載されています。コマンドの出力が表示されないのはなぜですか? 以前は表示されていました。
ビルド中の出力:
=> [7/18] RUN echo "hello world" 0.9s
ビルドが完了した後に表示される出力:
=> CACHED [6/18] RUN apt-get install postgresql -y 0.0s
=> [7/18] RUN echo "hello world" 6.4s
=> [8/18] RUN psql --version 17.1s
これはDockerfile
、Debian 9 をベースにした node:12.18.0 から作成されます。
Docker バージョン 19.03.13、ビルド 4484c46d9d。
ベストアンサー1
表示されている出力は、docker に同梱されている従来のビルド エンジンの代わりとなる buildkit からの出力です。この--progress
オプションを使用して、出力を調整できます。
--progress string Set type of progress output (auto, plain, tty). Use plain to show container output
(default "auto")
追加すると、--progress=plain
キャッシュから読み込まれなかった実行コマンドの出力が表示されます。これは、変数を設定することによっても実行できますBUILDKIT_PROGRESS
。
export BUILDKIT_PROGRESS=plain
ビルドをデバッグしていて、ステップがすでにキャッシュされている場合は、--no-cache
ビルドに以下を追加してステップを再実行し、出力を再表示します。
docker build --progress=plain --no-cache ...
ビルドキットを使用したくない場合は、DOCKER_BUILDKIT=0
シェルでエクスポートして古いビルド エンジンに戻すことができます。例:
DOCKER_BUILDKIT=0 docker build ...
または
export DOCKER_BUILDKIT=0
docker build ...