You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
2.4 KiB
Markdown
126 lines
2.4 KiB
Markdown
3 years ago
|
---
|
||
|
title: "Extension field with Compose"
|
||
|
keywords: build, buildx, bake, buildkit, compose
|
||
|
---
|
||
|
|
||
|
[Special extension](https://docs.docker.com/compose/compose-file/#extension)
|
||
|
field `x-bake` can be used in your compose file to evaluate fields that are not
|
||
|
(yet) available in the [build definition](https://docs.docker.com/compose/compose-file/build/#build-definition).
|
||
|
|
||
|
```yaml
|
||
|
# docker-compose.yml
|
||
|
services:
|
||
|
addon:
|
||
|
image: ct-addon:bar
|
||
|
build:
|
||
|
context: .
|
||
|
dockerfile: ./Dockerfile
|
||
|
args:
|
||
|
CT_ECR: foo
|
||
|
CT_TAG: bar
|
||
|
x-bake:
|
||
|
tags:
|
||
|
- ct-addon:foo
|
||
|
- ct-addon:alp
|
||
|
platforms:
|
||
|
- linux/amd64
|
||
|
- linux/arm64
|
||
|
cache-from:
|
||
|
- user/app:cache
|
||
|
- type=local,src=path/to/cache
|
||
|
cache-to: type=local,dest=path/to/cache
|
||
|
pull: true
|
||
|
|
||
|
aws:
|
||
|
image: ct-fake-aws:bar
|
||
|
build:
|
||
|
dockerfile: ./aws.Dockerfile
|
||
|
args:
|
||
|
CT_ECR: foo
|
||
|
CT_TAG: bar
|
||
|
x-bake:
|
||
|
secret:
|
||
|
- id=mysecret,src=./secret
|
||
|
- id=mysecret2,src=./secret2
|
||
|
platforms: linux/arm64
|
||
|
output: type=docker
|
||
|
no-cache: true
|
||
|
```
|
||
|
|
||
|
```console
|
||
|
$ docker buildx bake --print
|
||
|
```
|
||
|
```json
|
||
|
{
|
||
|
"group": {
|
||
|
"default": {
|
||
|
"targets": [
|
||
|
"aws",
|
||
|
"addon"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"target": {
|
||
|
"addon": {
|
||
|
"context": ".",
|
||
|
"dockerfile": "./Dockerfile",
|
||
|
"args": {
|
||
|
"CT_ECR": "foo",
|
||
|
"CT_TAG": "bar"
|
||
|
},
|
||
|
"tags": [
|
||
|
"ct-addon:foo",
|
||
|
"ct-addon:alp"
|
||
|
],
|
||
|
"cache-from": [
|
||
|
"user/app:cache",
|
||
|
"type=local,src=path/to/cache"
|
||
|
],
|
||
|
"cache-to": [
|
||
|
"type=local,dest=path/to/cache"
|
||
|
],
|
||
|
"platforms": [
|
||
|
"linux/amd64",
|
||
|
"linux/arm64"
|
||
|
],
|
||
|
"pull": true
|
||
|
},
|
||
|
"aws": {
|
||
|
"context": ".",
|
||
|
"dockerfile": "./aws.Dockerfile",
|
||
|
"args": {
|
||
|
"CT_ECR": "foo",
|
||
|
"CT_TAG": "bar"
|
||
|
},
|
||
|
"tags": [
|
||
|
"ct-fake-aws:bar"
|
||
|
],
|
||
|
"secret": [
|
||
|
"id=mysecret,src=./secret",
|
||
|
"id=mysecret2,src=./secret2"
|
||
|
],
|
||
|
"platforms": [
|
||
|
"linux/arm64"
|
||
|
],
|
||
|
"output": [
|
||
|
"type=docker"
|
||
|
],
|
||
|
"no-cache": true
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Complete list of valid fields for `x-bake`:
|
||
|
|
||
|
* `cache-from`
|
||
|
* `cache-to`
|
||
|
* `no-cache`
|
||
|
* `no-cache-filter`
|
||
|
* `output`
|
||
|
* `platforms`
|
||
|
* `pull`
|
||
|
* `secret`
|
||
|
* `ssh`
|
||
|
* `tags`
|