Docker 默认构建使用的是 BuildKit(现代构建系统),它的特性是:
RUN
命令的控制台输出在构建命令前加环境变量:
DOCKER_BUILDKIT=0 docker build -t your-image-name .
然后你就能看到像传统那样,RUN ls -al
或 find .
的输出会全部打印出来:
Step 5/7 : RUN find . -type f
---> Running in 123456abcdef
./package.json
./src/index.tsx
...
只建议在调试阶段使用,禁用 BuildKit 会稍慢一点。
BuildKit 会显示 stderr 输出,所以你可以把内容转到 stderr:
RUN find . 1>&2
或者:
RUN echo "目录内容:" 1>&2 && find . 1>&2
这样就能在 BuildKit 开启的情况下把输出“骗”出来。
DOCKER_BUILDKIT=0 docker build -t test-image .
或者--progress=plain
:
docker build --progress=plain -t test-image .
--progress=plain
也能让 BuildKit 输出更详细,不用完全关闭它。