烘焙简介
目录
Bake 是docker build
命令,让您更轻松
在
为团队中的每个人提供一致的方式。
Bake 是 Buildx CLI 中内置的一个命令,所以只要你有 Buildx
安装后,您还可以通过docker buildx bake
命令。
使用 Bake 构建项目
下面是一个docker build
命令:
$ docker build -f Dockerfile -t myapp:latest .
此命令在当前目录中构建 Dockerfile,并标记
生成的镜像为myapp:latest
.
要使用 Bake 表示相同的构建配置,请执行以下作:
docker-bake.hcl
target "myapp" {
context = "."
dockerfile = "Dockerfile"
tags = ["myapp:latest"]
}
Bake 提供了一种结构化的方式来管理 build 配置,并且
您不必记住docker build
每次。
使用此文件,构建镜像就像运行以下命令一样简单:
$ docker buildx bake myapp
对于简单的构建,两者之间的区别docker build
和docker buildx bake
是最小的。但是,随着构建配置变得越来越复杂,Bake
提供了一种更结构化的方法来管理这种复杂性,那就是
难以使用 CLI 标志进行管理docker build
.它还提供了一个
在团队中共享构建配置的方式,以便每个人都
使用相同的配置以一致的方式构建镜像。
Bake 文件格式
您可以在 HCL、YAML(Docker Compose 文件)或 JSON 中编写 Bake 文件。在 通常,HCL 是最具表现力和灵活性的格式,这就是为什么你会 请参阅本文档中的大多数示例以及 使用 Bake。
可为目标设置的属性与 CLI 标志非常相似docker build
.例如,请考虑以下docker build
命令:
$ docker build \
-f Dockerfile \
-t myapp:latest \
--build-arg foo=bar \
--no-cache \
--platform linux/amd64,linux/arm64 \
.
Bake 等效项为:
target "myapp" {
context = "."
dockerfile = "Dockerfile"
tags = ["myapp:latest"]
args = {
foo = "bar"
}
no-cache = true
platforms = ["linux/amd64", "linux/arm64"]
}
后续步骤
要了解有关使用 Bake 的更多信息,请参阅以下主题:
- 了解如何在 Bake 中定义和使用目标
- 要查看可为目标设置的所有属性,请参阅 Bake file 参考。