diff --git a/content/reference/compose-file/build.md b/content/reference/compose-file/build.md index 0a4847fdca76..2b486bde4395 100644 --- a/content/reference/compose-file/build.md +++ b/content/reference/compose-file/build.md @@ -118,6 +118,28 @@ the unused contexts. Illustrative examples of how this is used in Buildx can be found [here](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#-additional-build-contexts---build-context). +`additional_contexts` can also refer to an image built by another service. +This allows a service image to be built using another service image as a base image, and to share +layers between service images. + +```yaml +services: + base: + build: + context: . + dockerfile_inline: | + FROM alpine + RUN ... + base: + build: + context: . + dockerfile_inline: | + FROM base # image built for service base + RUN ... + additional_contexts: + base: service:base +``` + ### `args` `args` define build arguments, that is Dockerfile `ARG` values. diff --git a/content/reference/compose-file/merge.md b/content/reference/compose-file/merge.md index 321320fc6548..ccd0390b003b 100644 --- a/content/reference/compose-file/merge.md +++ b/content/reference/compose-file/merge.md @@ -107,8 +107,8 @@ While these types are modeled in a Compose file as a sequence, they have special | Attribute | Unique key | |-------------|--------------------------| | volumes | target | -| secrets | source | -| configs | source | +| secrets | target | +| configs | target | | ports | {ip, target, published, protocol} | When merging Compose files, Compose appends new entries that do not violate a uniqueness constraint and merge entries that share a unique key. diff --git a/content/reference/compose-file/services.md b/content/reference/compose-file/services.md index c4ce1d542b54..1e21cbde7962 100644 --- a/content/reference/compose-file/services.md +++ b/content/reference/compose-file/services.md @@ -1005,6 +1005,29 @@ configuration, which means for Linux `/etc/hosts` get extra lines: ::1 myhostv6 ``` +### `gpus` + +{{< summary-bar feature_name="Compose gpus" >}} + +`gpus` specifies GPU devices to be allocated for container usage. This is equivalent to a [device request](deploy.md#devices) with +an implicit `gpu` capability. + +```yaml +services: + model: + gpus: + - driver: 3dfx + count: 2 +``` + +`gpus` also can be set as string `all` to allocate all available GPU devices to the container. + +```yaml +services: + model: + gpus: all +``` + ### `group_add` `group_add` specifies additional groups, by name or number, which the user inside the container must be a member of. diff --git a/data/summary.yaml b/data/summary.yaml index b7cfa2076309..a5aace9f8a55 100644 --- a/data/summary.yaml +++ b/data/summary.yaml @@ -81,6 +81,8 @@ Compose file watch: requires: Docker Compose [2.22.0](/manuals/compose/releases/release-notes.md#2220) and later Compose format: requires: Docker Compose [2.30.0](/manuals/compose/releases/release-notes.md#2300) and later +Compose gpus: + requires: Docker Compose [2.30.0](/manuals/compose/releases/release-notes.md#2300) and later Compose include: requires: Docker Compose [2.20.3](/manuals/compose/releases/release-notes.md#2203) and later Compose label file: