mirror of https://github.com/docker/docs.git
281 lines
7.6 KiB
YAML
281 lines
7.6 KiB
YAML
command: docker buildx bake
|
|
aliases: docker buildx bake, docker buildx f
|
|
short: Build from a file
|
|
long: |-
|
|
Bake is a high-level build command. Each specified target will run in parallel
|
|
as part of the build.
|
|
|
|
Read [High-level build options with Bake](/build/bake/)
|
|
guide for introduction to writing bake files.
|
|
|
|
> **Note**
|
|
>
|
|
> `buildx bake` command may receive backwards incompatible features in the future
|
|
> if needed. We are looking for feedback on improving the command and extending
|
|
> the functionality further.
|
|
usage: docker buildx bake [OPTIONS] [TARGET...]
|
|
pname: docker buildx
|
|
plink: docker_buildx.yaml
|
|
options:
|
|
- option: file
|
|
shorthand: f
|
|
value_type: stringArray
|
|
default_value: '[]'
|
|
description: Build definition file
|
|
details_url: '#file'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: load
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Shorthand for `--set=*.output=type=docker`
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: metadata-file
|
|
value_type: string
|
|
description: Write build result metadata to the file
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: no-cache
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Do not use cache when building the image
|
|
details_url: '#no-cache'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: print
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Print the options without building
|
|
details_url: '#print'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: progress
|
|
value_type: string
|
|
default_value: auto
|
|
description: |
|
|
Set type of progress output (`auto`, `plain`, `tty`). Use plain to show container output
|
|
details_url: '#progress'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: provenance
|
|
value_type: string
|
|
description: Shorthand for `--set=*.attest=type=provenance`
|
|
details_url: '#provenance'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: pull
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Always attempt to pull all referenced images
|
|
details_url: '#pull'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: push
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Shorthand for `--set=*.output=type=registry`
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: sbom
|
|
value_type: string
|
|
description: Shorthand for `--set=*.attest=type=sbom`
|
|
details_url: '#sbom'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: set
|
|
value_type: stringArray
|
|
default_value: '[]'
|
|
description: Override target value (e.g., `targetpattern.key=value`)
|
|
details_url: '#set'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
inherited_options:
|
|
- option: builder
|
|
value_type: string
|
|
description: Override the configured builder instance
|
|
details_url: '#builder'
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
examples: |-
|
|
### Override the configured builder instance (--builder) {#builder}
|
|
|
|
Same as [`buildx --builder`](buildx.md#builder).
|
|
|
|
### Specify a build definition file (-f, --file) {#file}
|
|
|
|
Use the `-f` / `--file` option to specify the build definition file to use.
|
|
The file can be an HCL, JSON or Compose file. If multiple files are specified
|
|
they are all read and configurations are combined.
|
|
|
|
You can pass the names of the targets to build, to build only specific target(s).
|
|
The following example builds the `db` and `webapp-release` targets that are
|
|
defined in the `docker-bake.dev.hcl` file:
|
|
|
|
```hcl
|
|
# docker-bake.dev.hcl
|
|
group "default" {
|
|
targets = ["db", "webapp-dev"]
|
|
}
|
|
|
|
target "webapp-dev" {
|
|
dockerfile = "Dockerfile.webapp"
|
|
tags = ["docker.io/username/webapp"]
|
|
}
|
|
|
|
target "webapp-release" {
|
|
inherits = ["webapp-dev"]
|
|
platforms = ["linux/amd64", "linux/arm64"]
|
|
}
|
|
|
|
target "db" {
|
|
dockerfile = "Dockerfile.db"
|
|
tags = ["docker.io/username/db"]
|
|
}
|
|
```
|
|
|
|
```console
|
|
$ docker buildx bake -f docker-bake.dev.hcl db webapp-release
|
|
```
|
|
|
|
See the [Bake file reference](/build/bake/reference/)
|
|
for more details.
|
|
|
|
### Do not use cache when building the image (--no-cache) {#no-cache}
|
|
|
|
Same as `build --no-cache`. Do not use cache when building the image.
|
|
|
|
### Print the options without building (--print) {#print}
|
|
|
|
Prints the resulting options of the targets desired to be built, in a JSON
|
|
format, without starting a build.
|
|
|
|
```console
|
|
$ docker buildx bake -f docker-bake.hcl --print db
|
|
{
|
|
"group": {
|
|
"default": {
|
|
"targets": [
|
|
"db"
|
|
]
|
|
}
|
|
},
|
|
"target": {
|
|
"db": {
|
|
"context": "./",
|
|
"dockerfile": "Dockerfile",
|
|
"tags": [
|
|
"docker.io/tiborvass/db"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Set type of progress output (--progress) {#progress}
|
|
|
|
Same as [`build --progress`](buildx_build.md#progress).
|
|
|
|
### Create provenance attestations (--provenance) {#provenance}
|
|
|
|
Same as [`build --provenance`](buildx_build.md#provenance).
|
|
|
|
### Always attempt to pull a newer version of the image (--pull) {#pull}
|
|
|
|
Same as `build --pull`.
|
|
|
|
### Create SBOM attestations (--sbom) {#sbom}
|
|
|
|
Same as [`build --sbom`](buildx_build.md#sbom).
|
|
|
|
### Override target configurations from command line (--set) {#set}
|
|
|
|
```
|
|
--set targetpattern.key[.subkey]=value
|
|
```
|
|
|
|
Override target configurations from command line. The pattern matching syntax
|
|
is defined in https://golang.org/pkg/path/#Match.
|
|
|
|
```console
|
|
$ docker buildx bake --set target.args.mybuildarg=value
|
|
$ docker buildx bake --set target.platform=linux/arm64
|
|
$ docker buildx bake --set foo*.args.mybuildarg=value # overrides build arg for all targets starting with 'foo'
|
|
$ docker buildx bake --set *.platform=linux/arm64 # overrides platform for all targets
|
|
$ docker buildx bake --set foo*.no-cache # bypass caching only for targets starting with 'foo'
|
|
```
|
|
|
|
Complete list of overridable fields:
|
|
|
|
* `args`
|
|
* `cache-from`
|
|
* `cache-to`
|
|
* `context`
|
|
* `dockerfile`
|
|
* `labels`
|
|
* `no-cache`
|
|
* `no-cache-filter`
|
|
* `output`
|
|
* `platform`
|
|
* `pull`
|
|
* `push`
|
|
* `secrets`
|
|
* `ssh`
|
|
* `tags`
|
|
* `target`
|
|
deprecated: false
|
|
hidden: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
|