为什么 docker build 没有显示命令的任何输出?
Why is docker build not showing any output from commands?
来自我的 Dockerfile
的片段:
FROM node:12.18.0
RUN echo "hello world"
RUN psql --version
当我 运行 docker build .
我看不到这两个命令的任何输出,即使它们没有被缓存。文档说 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
是从 node:12.18.0 创建的,它基于 Debian 9.
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,可以通过在 shell 中导出 DOCKER_BUILDKIT=0
来恢复到旧的构建引擎,例如:
DOCKER_BUILDKIT=0 docker build ...
或
export DOCKER_BUILDKIT=0
docker build ...
只需在 build
之后使用此标志 --progress=plain
。
例如:
docker-compose build --progress=plain <container_name>
或
docker build --progress=plain .
如果你不想每次都使用这个标志,那么永久地告诉 docker 使用这个标志,方法是:
export BUILDKIT_PROGRESS=plain
这里是你输入docker build --help
时的官方文档。
--progress string Set type of progress output (auto, plain, tty). Use plain to show container output (default "auto")
作为指定 --progress=plain
选项的替代方法,您还可以通过在 shell 配置中设置此环境变量来永久禁用“漂亮”输出:
export BUILDKIT_PROGRESS=plain
在 Docker 20.10 中,我也必须使用 --no-cache 标志。否则不会显示缓存的输出。
docker build --progress=plain --no-cache .
来自我的 Dockerfile
的片段:
FROM node:12.18.0
RUN echo "hello world"
RUN psql --version
当我 运行 docker build .
我看不到这两个命令的任何输出,即使它们没有被缓存。文档说 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
是从 node:12.18.0 创建的,它基于 Debian 9.
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,可以通过在 shell 中导出 DOCKER_BUILDKIT=0
来恢复到旧的构建引擎,例如:
DOCKER_BUILDKIT=0 docker build ...
或
export DOCKER_BUILDKIT=0
docker build ...
只需在 build
之后使用此标志 --progress=plain
。
例如:
docker-compose build --progress=plain <container_name>
或
docker build --progress=plain .
如果你不想每次都使用这个标志,那么永久地告诉 docker 使用这个标志,方法是:
export BUILDKIT_PROGRESS=plain
这里是你输入docker build --help
时的官方文档。
--progress string Set type of progress output (auto, plain, tty). Use plain to show container output (default "auto")
作为指定 --progress=plain
选项的替代方法,您还可以通过在 shell 配置中设置此环境变量来永久禁用“漂亮”输出:
export BUILDKIT_PROGRESS=plain
在 Docker 20.10 中,我也必须使用 --no-cache 标志。否则不会显示缓存的输出。
docker build --progress=plain --no-cache .