1. ホーム
  2. docker

[解決済み] docker buildでコマンドの出力が表示されないのはなぜですか?

2022-03-11 23:25:53

質問

私の Dockerfile :

FROM node:12.18.0
RUN echo "hello world"
RUN psql --version

を実行すると docker build . この2つのコマンドは、キャッシュされていなくても出力されませんね。ドキュメントによると docker build はデフォルトで冗長です。なぜ、コマンドからの出力が表示されないのですか?以前は表示されていたのですが。

ビルド中の出力です。

=> [7/18] RUN echo "hello worl"                         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。

解決方法は?

表示されている出力は buildkit のもので、これは docker に同梱されている古典的なビルドエンジンを置き換えたものです。この出力を調整するには --progress オプションで指定します。

  --progress string         Set type of progress output (auto, plain, tty). Use plain to show container output
                            (default "auto")

追加 --progress=plain は、キャッシュから読み込まれなかった実行コマンドの出力を表示します。


buildkit を使いたくない場合は、以下のようにエクスポートすることで、古いビルドエンジンに戻すことができます。 DOCKER_BUILDKIT=0 をシェルで使用する場合など。

DOCKER_BUILDKIT=0 docker build ...

または

export DOCKER_BUILDKIT=0
docker build ...