docker 构建日志与我习惯的不同
docker build logs are different from what I'm used to
在执行 docker built -t sometag .
时,我总是会详细记录创建 docker 图像所涉及的步骤。特别是中间图像 ID。类似的东西:
Sending build context to Docker daemon 3.072kB
Step 1/3 : FROM python:3.8-slim-buster
---> 3d8f801fc3db
Step 2/3 : COPY build.sh .
---> 541b65a7b417
Step 3/3 : RUN ./build.sh
---> Running in 9917e3865f96
.........
现在,突然之间,我开始拥有不同的日志结构。像这样:
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 761B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/alpine:latest 0.6s
=> [internal] load build context 0.0s
=> => transferring context: 757B 0.0s
=> [1/4] FROM docker.io/library/alpine:latest@sha256:d9a7354e3845ea8466bb00b22224d9116b183e594527fb5b6c 0.0s
=> CACHED [2/4] WORKDIR /src 0.0s
...................
这让我很困惑。特别是中间图像 ID 的缺失,因为我使用它们进行调试。
如何恢复以前的日志结构或获取中间图像 ID?
PS:Docker 版本 20.10.2,在 windows 10.
上构建 2291f61
看起来您现在正在使用 BuildKit。您可能已经设置了环境变量 DOCKER_BUILDKIT=1
(?).
在没有 BuildKit 的情况下构建(并取回您习惯的日志):
DOCKER_BUILDKIT=0 docker build -t sometag .
现在,请注意,BuildKit 提供了比经典构建器更多的增强功能。所以就我个人而言,我会尝试适应新的日志输出。
尽管您可以为单个 运行(DISABLE_BUILDKIT=0 环境变量)禁用它,但通过使用 Docker 功能标志来使其更永久可能更实用。
打开 Docker 设置,导航到 Docker 引擎,您会看到类似这样的内容。修改true为false,保存
{
"registry-mirrors": [],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true << change this to false !
}
}
查看更多信息
https://docs.docker.com/develop/develop-images/build_enhancements/
在执行 docker built -t sometag .
时,我总是会详细记录创建 docker 图像所涉及的步骤。特别是中间图像 ID。类似的东西:
Sending build context to Docker daemon 3.072kB
Step 1/3 : FROM python:3.8-slim-buster
---> 3d8f801fc3db
Step 2/3 : COPY build.sh .
---> 541b65a7b417
Step 3/3 : RUN ./build.sh
---> Running in 9917e3865f96
.........
现在,突然之间,我开始拥有不同的日志结构。像这样:
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 761B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/alpine:latest 0.6s
=> [internal] load build context 0.0s
=> => transferring context: 757B 0.0s
=> [1/4] FROM docker.io/library/alpine:latest@sha256:d9a7354e3845ea8466bb00b22224d9116b183e594527fb5b6c 0.0s
=> CACHED [2/4] WORKDIR /src 0.0s
...................
这让我很困惑。特别是中间图像 ID 的缺失,因为我使用它们进行调试。
如何恢复以前的日志结构或获取中间图像 ID?
PS:Docker 版本 20.10.2,在 windows 10.
上构建 2291f61看起来您现在正在使用 BuildKit。您可能已经设置了环境变量 DOCKER_BUILDKIT=1
(?).
在没有 BuildKit 的情况下构建(并取回您习惯的日志):
DOCKER_BUILDKIT=0 docker build -t sometag .
现在,请注意,BuildKit 提供了比经典构建器更多的增强功能。所以就我个人而言,我会尝试适应新的日志输出。
尽管您可以为单个 运行(DISABLE_BUILDKIT=0 环境变量)禁用它,但通过使用 Docker 功能标志来使其更永久可能更实用。
打开 Docker 设置,导航到 Docker 引擎,您会看到类似这样的内容。修改true为false,保存
{
"registry-mirrors": [],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true << change this to false !
}
}
查看更多信息 https://docs.docker.com/develop/develop-images/build_enhancements/