烘焙目标

Bake 文件中的目标表示构建调用。它包含所有 通常使用 flags 传递给命令的信息。docker build

target "webapp" {
  dockerfile = "webapp.Dockerfile"
  tags = ["docker.io/username/webapp:latest"]
  context = "https://github.com/username/webapp"
}

要使用 Bake 构建目标,请将目标的 name 传递给命令。bake

$ docker buildx bake webapp

您可以通过将多个目标名称传递给命令来一次构建多个目标。bake

$ docker buildx bake webapp api tests

默认目标

如果您在运行时未指定目标,则 Bake 将 构建名为 的目标。docker buildx bakedefault

target "default" {
  dockerfile = "webapp.Dockerfile"
  tags = ["docker.io/username/webapp:latest"]
  context = "https://github.com/username/webapp"
}

要构建此目标,请在不带任何参数的情况下运行:docker buildx bake

$ docker buildx bake

目标属性

您可以为目标设置的属性与 的 CLI 标志非常相似,其中包含一些特定于 Bake 的其他属性。docker build

有关可为目标设置的所有属性,请参阅 Bake 参考

对目标进行分组

您可以使用数据块将目标分组在一起。这在以下情况下非常有用 想要一次构建多个目标。group

group "all" {
  targets = ["webapp", "api", "tests"]
}

target "webapp" {
  dockerfile = "webapp.Dockerfile"
  tags = ["docker.io/username/webapp:latest"]
  context = "https://github.com/username/webapp"
}

target "api" {
  dockerfile = "api.Dockerfile"
  tags = ["docker.io/username/api:latest"]
  context = "https://github.com/username/api"
}

target "tests" {
  dockerfile = "tests.Dockerfile"
  contexts = {
    webapp = "target:webapp",
    api = "target:api",
  }
  output = ["type=local,dest=build/tests"]
  context = "."
}

要在一个组中构建所有目标,请将组的名称传递给命令。bake

$ docker buildx bake all

其他资源

请参阅以下页面以了解有关 Bake 功能的更多信息:

  • 了解如何在 Bake 中使用变量进行构建 配置更灵活。
  • 了解如何使用矩阵构建具有不同 矩阵中的配置。
  • 前往 Bake file 参考 了解全部 可以在 Bake 文件中设置的属性及其语法。