docker build がコマンドからの出力を何も表示しないのはなぜですか? 質問する

docker build がコマンドからの出力を何も表示しないのはなぜですか? 質問する

私の抜粋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 ...

おすすめ記事