BuildKit

新的Builder buildkit 输出在TTY:

  1. docker build -t alpine:v2 -f Dockerfile.buildkit .

image.png
新的 docker build BuildKit 普通输出:

  1. docker build --progress=plain -t alpine:v2 -f Dockerfile.buildkit .

image.png

BuildKit扩展功能

要启用 BuildKit 扩展功能,需要在 Dcokerfile首于添加:

  1. # syntax=<frontend image>, e.g. # syntax=docker/dockerfile:1.2

此页面上的示例使用1.2.0 及更高版本中可用的功能。官方建议使用docker/dockerfile:1,它始终指向版本 1 语法的最新版本。BuildKit 在构建之前会自动检查语法的更新,确保您使用的是最新版本。在Dockerfile 参考中了解有关该syntax指令的 更多信息。

Docker builder 新的安全扩展

docker build新的—secret标志允许用户传递要在 Dockerfile 中使用的秘密信息,以便以安全的方式构建 docker 映像,而最终不会存储在最终映像中。

示例:

  1. # syntax=docker/dockerfile:1.2
  2. FROM alpine
  3. # 显示默认目标位置:
  4. RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecret
  5. # 显示secret 自定义Secret位置:
  6. RUN --mount=type=secret,id=mysecret,dst=/foobar cat /foobar

id是要传递给 docker build --secret此标识符与RUN --mount要在 Dockerfile 中使用的标识符相关联。Docker 不使用 Dockerfile 之外保存秘密的文件名,因为这可能是敏感信息。
dst RUN将机密文件重命名为要使用的 Dockerfile 命令中的特定文件。
例如,将一条 secret 信息存储在文本文件中:

  1. echo "secretinfo" > secret.txt

执行构建:

  1. docker builder build -t test:v1 .docker builder build --no-cache --secret id=mysecret,src=secret.txt .

**