mirror of https://github.com/docker/docs.git
build: fix links and formatting
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
6dd8846da6
commit
a3a02a2a00
|
@ -97,7 +97,7 @@ Unlike the [HCL format](file-definition.md#hcl-definition), there are some
|
|||
limitations with the compose format:
|
||||
|
||||
* Specifying variables or global scope attributes is not yet supported
|
||||
* `inherits` service field is not supported, but you can use [YAML anchors](https://docs.docker.com/compose/compose-file/#fragments){:target="_blank" rel="noopener" class="_"}
|
||||
* `inherits` service field is not supported, but you can use [YAML anchors](https://docs.docker.com/compose/compose-file/#fragments){:target="blank" rel="noopener" class=""}
|
||||
to reference other services like the example above
|
||||
|
||||
## `.env` file
|
||||
|
|
|
@ -134,7 +134,7 @@ $ docker buildx bake --set app.args.mybuildarg=bar --set app.platform=linux/arm6
|
|||
}
|
||||
```
|
||||
|
||||
Pattern matching syntax defined in [https://golang.org/pkg/path/#Match](https://golang.org/pkg/path/#Match){:target="_blank" rel="noopener" class="_"}
|
||||
Pattern matching syntax defined in [https://golang.org/pkg/path/#Match](https://golang.org/pkg/path/#Match){:target="blank" rel="noopener" class=""}
|
||||
is also supported:
|
||||
|
||||
```console
|
||||
|
|
|
@ -93,7 +93,7 @@ $ docker buildx bake build
|
|||
|
||||
### Variable
|
||||
|
||||
Similar to how Terraform provides a way to [define variables](https://www.terraform.io/docs/configuration/variables.html#declaring-an-input-variable){:target="_blank" rel="noopener" class="_"},
|
||||
Similar to how Terraform provides a way to [define variables](https://www.terraform.io/docs/configuration/variables.html#declaring-an-input-variable){:target="blank" rel="noopener" class=""},
|
||||
the HCL file format also supports variable block definitions. These can be used
|
||||
to define variables with values provided by the current environment, or a
|
||||
default value when unset:
|
||||
|
@ -120,8 +120,8 @@ $ TAG=dev docker buildx bake webapp-dev # will use the TAG environment variable
|
|||
|
||||
### Functions
|
||||
|
||||
A [set of generally useful functions](https://github.com/docker/buildx/blob/master/bake/hclparser/stdlib.go){:target="_blank" rel="noopener" class="_"}
|
||||
provided by [go-cty](https://github.com/zclconf/go-cty/tree/main/cty/function/stdlib){:target="_blank" rel="noopener" class="_"}
|
||||
A [set of generally useful functions](https://github.com/docker/buildx/blob/master/bake/hclparser/stdlib.go){:target="blank" rel="noopener" class=""}
|
||||
provided by [go-cty](https://github.com/zclconf/go-cty/tree/main/cty/function/stdlib){:target="blank" rel="noopener" class=""}
|
||||
are available for use in HCL files:
|
||||
|
||||
```hcl
|
||||
|
@ -135,7 +135,7 @@ target "webapp-dev" {
|
|||
}
|
||||
```
|
||||
|
||||
In addition, [user defined functions](https://github.com/hashicorp/hcl/tree/main/ext/userfunc){:target="_blank" rel="noopener" class="_"}
|
||||
In addition, [user defined functions](https://github.com/hashicorp/hcl/tree/main/ext/userfunc){:target="blank" rel="noopener" class=""}
|
||||
are also supported:
|
||||
|
||||
```hcl
|
||||
|
@ -359,7 +359,7 @@ $ docker buildx bake "https://github.com/docker/cli.git#v20.10.11" --print
|
|||
```
|
||||
|
||||
As you can see the context is fixed to `https://github.com/docker/cli.git` even if
|
||||
[no context is actually defined](https://github.com/docker/cli/blob/2776a6d694f988c0c1df61cad4bfac0f54e481c8/docker-bake.hcl#L17-L26){:target="_blank" rel="noopener" class="_"}
|
||||
[no context is actually defined](https://github.com/docker/cli/blob/2776a6d694f988c0c1df61cad4bfac0f54e481c8/docker-bake.hcl#L17-L26){:target="blank" rel="noopener" class=""}
|
||||
in the definition.
|
||||
|
||||
If you want to access the main context for bake command from a bake file
|
||||
|
|
|
@ -98,7 +98,7 @@ $ TAG=$(git rev-parse --short HEAD) docker buildx bake --print webapp
|
|||
|
||||
## Using the `add` function
|
||||
|
||||
You can use [`go-cty` stdlib functions](https://github.com/zclconf/go-cty/tree/main/cty/function/stdlib){:target="_blank" rel="noopener" class="_"}.
|
||||
You can use [`go-cty` stdlib functions](https://github.com/zclconf/go-cty/tree/main/cty/function/stdlib){:target="blank" rel="noopener" class=""}.
|
||||
Here we are using the `add` function.
|
||||
|
||||
```hcl
|
||||
|
@ -144,7 +144,7 @@ $ docker buildx bake --print webapp
|
|||
|
||||
## Defining an `increment` function
|
||||
|
||||
It also supports [user defined functions](https://github.com/hashicorp/hcl/tree/main/ext/userfunc){:target="_blank" rel="noopener" class="_"}.
|
||||
It also supports [user defined functions](https://github.com/hashicorp/hcl/tree/main/ext/userfunc){:target="blank" rel="noopener" class=""}.
|
||||
The following example defines a simple an `increment` function.
|
||||
|
||||
```hcl
|
||||
|
|
|
@ -7,7 +7,7 @@ redirect_from:
|
|||
|
||||
> This command is experimental.
|
||||
>
|
||||
> The design of bake is in early stages, and we are looking for [feedback from users](https://github.com/docker/buildx/issues){:target="_blank" rel="noopener" class="_"}.
|
||||
> The design of bake is in early stages, and we are looking for [feedback from users](https://github.com/docker/buildx/issues){:target="blank" rel="noopener" class=""}.
|
||||
{: .experimental }
|
||||
|
||||
Buildx also aims to provide support for high-level build concepts that go beyond
|
||||
|
@ -15,7 +15,7 @@ invoking a single build command. We want to support building all the images in
|
|||
your application together and let the users define project specific reusable
|
||||
build flows that can then be easily invoked by anyone.
|
||||
|
||||
[BuildKit](https://github.com/moby/buildkit){:target="_blank" rel="noopener" class="_"}
|
||||
[BuildKit](https://github.com/moby/buildkit){:target="blank" rel="noopener" class=""}
|
||||
efficiently handles multiple concurrent build requests and de-duplicating work.
|
||||
The build commands can be combined with general-purpose command runners
|
||||
(for example, `make`). However, these tools generally invoke builds in sequence
|
||||
|
|
|
@ -30,9 +30,8 @@ ones.
|
|||
|
||||
In general, start with a working machine that is running
|
||||
the distribution you'd like to package as a parent image, though that is
|
||||
not required for some tools like Debian's
|
||||
[Debootstrap](https://wiki.debian.org/Debootstrap), which you can also
|
||||
use to build Ubuntu images.
|
||||
not required for some tools like Debian's [Debootstrap](https://wiki.debian.org/Debootstrap){:target="blank" rel="noopener" class=""},
|
||||
which you can also use to build Ubuntu images.
|
||||
|
||||
It can be as simple as this to create an Ubuntu parent image:
|
||||
|
||||
|
@ -48,8 +47,8 @@ It can be as simple as this to create an Ubuntu parent image:
|
|||
DISTRIB_CODENAME=focal
|
||||
DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS"
|
||||
|
||||
There are more example scripts for creating parent images in [the Docker
|
||||
GitHub repository](https://github.com/docker/docker/blob/master/contrib).
|
||||
There are more example scripts for creating parent images in
|
||||
[the Docker GitHub repository](https://github.com/docker/docker/blob/master/contrib){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## Create a simple parent image using scratch
|
||||
|
||||
|
@ -71,7 +70,7 @@ CMD ["/hello"]
|
|||
```
|
||||
|
||||
Assuming you built the "hello" executable example by using the source code at
|
||||
[https://github.com/docker-library/hello-world](https://github.com/docker-library/hello-world),
|
||||
[https://github.com/docker-library/hello-world](https://github.com/docker-library/hello-world){:target="blank" rel="noopener" class=""},
|
||||
and you compiled it with the `-static` flag, you can build this Docker
|
||||
image using this `docker build` command:
|
||||
|
||||
|
@ -101,8 +100,7 @@ $ docker run --rm hello
|
|||
```
|
||||
|
||||
This example creates the hello-world image used in the tutorials.
|
||||
If you want to test it out, you can clone
|
||||
[the image repo](https://github.com/docker-library/hello-world).
|
||||
If you want to test it out, you can clone [the image repo](https://github.com/docker-library/hello-world){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## More resources
|
||||
|
||||
|
@ -110,5 +108,5 @@ There are lots of resources available to help you write your `Dockerfile`.
|
|||
|
||||
* There's a [complete guide to all the instructions](../../engine/reference/builder.md) available for use in a `Dockerfile` in the reference section.
|
||||
* To help you write a clear, readable, maintainable `Dockerfile`, we've also
|
||||
written a [Dockerfile best practices guide](../../develop/develop-images/dockerfile_best-practices.md).
|
||||
written a [Dockerfile best practices guide](../../develop/develop-images/dockerfile_best-practices.md).
|
||||
* If your goal is to create a new Docker Official Image, read [Docker Official Images](../../docker-hub/official_images.md).
|
||||
|
|
|
@ -9,7 +9,7 @@ keywords: build, buildx, cache, backend, azblob, azure
|
|||
> `moby/buildkit:master` image in your Buildx driver.
|
||||
|
||||
The `azblob` cache store uploads your resulting build cache to
|
||||
[Azure's blob storage service](https://azure.microsoft.com/en-us/services/storage/blobs/){: target="_blank" rel="noopener" class="_" }.
|
||||
[Azure's blob storage service](https://azure.microsoft.com/en-us/services/storage/blobs/){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
> **Note**
|
||||
>
|
||||
|
@ -34,7 +34,7 @@ The following table describes the available CSV parameters that you can pass to
|
|||
`--cache-to` and `--cache-from`.
|
||||
|
||||
| Name | Option | Type | Default | Description |
|
||||
| ------------------- | ----------------------- | ----------- | ------- | -------------------------------------------------- |
|
||||
|---------------------|-------------------------|-------------|---------|----------------------------------------------------|
|
||||
| `name` | `cache-to`,`cache-from` | String | | Required. The name of the cache image. |
|
||||
| `account_url` | `cache-to`,`cache-from` | String | | Base URL of the storage account. |
|
||||
| `secret_access_key` | `cache-to`,`cache-from` | String | | Blob storage account key, see [authentication][1]. |
|
||||
|
@ -47,7 +47,7 @@ The following table describes the available CSV parameters that you can pass to
|
|||
|
||||
The `secret_access_key`, if left unspecified, is read from environment variables
|
||||
on the BuildKit server following the scheme for the
|
||||
[Azure Go SDK](https://docs.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication){: target="_blank" rel="noopener" class="_" }.
|
||||
[Azure Go SDK](https://docs.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication){:target="blank" rel="noopener" class=""}.
|
||||
The environment variables are read from the server, not the Buildx client.
|
||||
|
||||
## Further reading
|
||||
|
@ -55,4 +55,4 @@ The environment variables are read from the server, not the Buildx client.
|
|||
For an introduction to caching see [Optimizing builds with cache](../index.md).
|
||||
|
||||
For more information on the `azblob` cache backend, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit#azure-blob-storage-cache-experimental){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit#azure-blob-storage-cache-experimental){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -10,10 +10,10 @@ keywords: build, buildx, cache, backend, gha, github, actions
|
|||
> unstable and may change in future releases.
|
||||
|
||||
The GitHub Actions cache utilizes the
|
||||
[GitHub-provided Action's cache](https://github.com/actions/cache){: target="_blank" rel="noopener" class="_" } available
|
||||
[GitHub-provided Action's cache](https://github.com/actions/cache){:target="blank" rel="noopener" class=""} available
|
||||
from within your CI execution environment. This is the recommended cache to use
|
||||
inside your GitHub action pipelines, as long as your use case falls within the
|
||||
[size and usage limits set by GitHub](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy){: target="_blank" rel="noopener" class="_" }.
|
||||
[size and usage limits set by GitHub](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
> **Note**
|
||||
>
|
||||
|
@ -38,7 +38,7 @@ The following table describes the available CSV parameters that you can pass to
|
|||
`--cache-to` and `--cache-from`.
|
||||
|
||||
| Name | Option | Type | Default | Description |
|
||||
| ------- | ----------------------- | ----------- | ------------------------------- | -------------------------------------------- |
|
||||
|---------|-------------------------|-------------|---------------------------------|----------------------------------------------|
|
||||
| `url` | `cache-to`,`cache-from` | String | `$ACTIONS_CACHE_URL` | Cache server URL, see [authentication][1]. |
|
||||
| `token` | `cache-to`,`cache-from` | String | `$ACTIONS_RUNTIME_TOKEN` | Access token, see [authentication][1]. |
|
||||
| `scope` | `cache-to`,`cache-from` | String | Name of the current Git branch. | Cache scope, see [scope][2] |
|
||||
|
@ -54,7 +54,7 @@ If the `url` or `token` parameters are left unspecified, the `gha` cache backend
|
|||
will fall back to using environment variables. If you invoke the `docker buildx`
|
||||
command manually from an inline step, then the variables must be manually
|
||||
exposed (using
|
||||
[`crazy-max/ghaction-github-runtime`](https://github.com/crazy-max/ghaction-github-runtime){: target="_blank" rel="noopener" class="_" },
|
||||
[`crazy-max/ghaction-github-runtime`](https://github.com/crazy-max/ghaction-github-runtime){:target="blank" rel="noopener" class=""},
|
||||
for example).
|
||||
|
||||
## Scope
|
||||
|
@ -78,15 +78,14 @@ $ docker buildx build --push -t <registry>/<image2> \
|
|||
--cache-from type=gha,url=...,token=...,scope=$GITHUB_REF_NAME-image2 .
|
||||
```
|
||||
|
||||
GitHub's
|
||||
[cache access restrictions](https://docs.github.com/en/actions/advanced-guides/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache){: target="_blank" rel="noopener" class="_" },
|
||||
GitHub's [cache access restrictions](https://docs.github.com/en/actions/advanced-guides/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache){:target="blank" rel="noopener" class=""},
|
||||
still apply. Only the cache for the current branch, the base branch and the
|
||||
default branch is accessible by a workflow.
|
||||
|
||||
### Using `docker/build-push-action`
|
||||
|
||||
When using the
|
||||
[`docker/build-push-action`](https://github.com/docker/build-push-action){: target="_blank" rel="noopener" class="_" }, the
|
||||
[`docker/build-push-action`](https://github.com/docker/build-push-action){:target="blank" rel="noopener" class=""}, the
|
||||
`url` and `token` parameters are automatically populated. No need to manually
|
||||
specify them, or include any additional workarounds.
|
||||
|
||||
|
@ -108,7 +107,7 @@ For example:
|
|||
For an introduction to caching see [Optimizing builds with cache](../index.md).
|
||||
|
||||
For more information on the `gha` cache backend, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit#github-actions-cache-experimental){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit#github-actions-cache-experimental){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
For more information about using GitHub Actions with Docker, see
|
||||
[Introduction to GitHub Actions](../../../ci/github-actions/index.md)
|
||||
|
|
|
@ -34,13 +34,13 @@ Buildx supports the following cache storage backends:
|
|||
- `local`: writes the build cache to a local directory on the filesystem.
|
||||
|
||||
- `gha`: uploads the build cache to
|
||||
[GitHub Actions cache](https://docs.github.com/en/rest/actions/cache){: target="_blank" rel="noopener" class="_" } (beta).
|
||||
[GitHub Actions cache](https://docs.github.com/en/rest/actions/cache){:target="blank" rel="noopener" class=""} (beta).
|
||||
|
||||
- `s3`: uploads the build cache to an
|
||||
[AWS S3 bucket](https://aws.amazon.com/s3/){: target="_blank" rel="noopener" class="_" } (unreleased).
|
||||
[AWS S3 bucket](https://aws.amazon.com/s3/){:target="blank" rel="noopener" class=""} (unreleased).
|
||||
|
||||
- `azblob`: uploads the build cache to
|
||||
[Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/){: target="_blank" rel="noopener" class="_" }
|
||||
[Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/){:target="blank" rel="noopener" class=""}
|
||||
(unreleased).
|
||||
|
||||
## Command syntax
|
||||
|
@ -74,7 +74,7 @@ $ docker buildx build --push -t <registry>/<image> \
|
|||
## Multiple caches
|
||||
|
||||
BuildKit currently only supports
|
||||
[a single cache exporter](https://github.com/moby/buildkit/pull/3024){: target="_blank" rel="noopener" class="_" }. But you
|
||||
[a single cache exporter](https://github.com/moby/buildkit/pull/3024){:target="blank" rel="noopener" class=""}. But you
|
||||
can import from as many remote caches as you like. For example, a common pattern
|
||||
is to use the cache of both the current branch and the main branch. The
|
||||
following example shows importing cache from multiple locations using the
|
||||
|
@ -89,11 +89,11 @@ $ docker buildx build --push -t <registry>/<image> \
|
|||
|
||||
## Configuration options
|
||||
|
||||
This section describes some of the configuration options available when
|
||||
generating cache exports. The options described here are common for at least two
|
||||
or more backend types. Additionally, the different backend types support
|
||||
specific parameters as well. See the detailed page about each backend type for
|
||||
more information about which configuration parameters apply.
|
||||
This section describes some configuration options available when generating
|
||||
cache exports. The options described here are common for at least two or more
|
||||
backend types. Additionally, the different backend types support specific
|
||||
parameters as well. See the detailed page about each backend type for more
|
||||
information about which configuration parameters apply.
|
||||
|
||||
The common parameters described here are:
|
||||
|
||||
|
|
|
@ -51,4 +51,4 @@ $ docker buildx build --push -t <registry>/<image> \
|
|||
For an introduction to caching see [Optimizing builds with cache](../index.md).
|
||||
|
||||
For more information on the `inline` cache backend, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit#inline-push-image-and-cache-together){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit#inline-push-image-and-cache-together){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -5,7 +5,7 @@ keywords: build, buildx, cache, backend, local
|
|||
|
||||
The `local` cache store is a simple cache option that stores your cache as files
|
||||
in a directory on your filesystem, using an
|
||||
[OCI image layout](https://github.com/opencontainers/image-spec/blob/main/image-layout.md){: target="_blank" rel="noopener" class="_" }
|
||||
[OCI image layout](https://github.com/opencontainers/image-spec/blob/main/image-layout.md){:target="blank" rel="noopener" class=""}
|
||||
for the underlying directory structure. Local cache is a good choice if you're
|
||||
just testing, or if you want the flexibility to self-manage a shared storage
|
||||
solution.
|
||||
|
@ -33,7 +33,7 @@ The following table describes the available CSV parameters that you can pass to
|
|||
`--cache-to` and `--cache-from`.
|
||||
|
||||
| Name | Option | Type | Default | Description |
|
||||
| ------------------- | ------------ | ----------------------- | ------- | -------------------------------------------------------------------- |
|
||||
|---------------------|--------------|-------------------------|---------|----------------------------------------------------------------------|
|
||||
| `src` | `cache-from` | String | | Path of the local directory where cache gets imported from. |
|
||||
| `digest` | `cache-from` | String | | Digest of manifest to import, see [cache versioning][4]. |
|
||||
| `dest` | `cache-to` | String | | Path of the local directory where cache gets exported to. |
|
||||
|
@ -84,7 +84,7 @@ Like other cache types, local cache gets replaced on export, by replacing the
|
|||
contents of the `index.json` file. However, previous caches will still be
|
||||
available in the `blobs` directory. These old caches are addressable by digest,
|
||||
and kept indefinitely. Therefore, the size of the local cache will continue to
|
||||
grow (see [`moby/buildkit#1896`](https://github.com/moby/buildkit/issues/1896){: target="_blank" rel="noopener" class="_" }
|
||||
grow (see [`moby/buildkit#1896`](https://github.com/moby/buildkit/issues/1896){:target="blank" rel="noopener" class=""}
|
||||
for more information).
|
||||
|
||||
When importing cache using `--cache-to`, you can specify the `digest` parameter
|
||||
|
@ -101,4 +101,4 @@ $ docker buildx build --push -t <registry>/<image> \
|
|||
For an introduction to caching see [Optimizing builds with cache](../index.md).
|
||||
|
||||
For more information on the `local` cache backend, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit#local-directory-1){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit#local-directory-1){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -41,7 +41,7 @@ The following table describes the available CSV parameters that you can pass to
|
|||
`--cache-to` and `--cache-from`.
|
||||
|
||||
| Name | Option | Type | Default | Description |
|
||||
| ------------------- | ----------------------- | ----------------------- | ------- | -------------------------------------------------------------------- |
|
||||
|---------------------|-------------------------|-------------------------|---------|----------------------------------------------------------------------|
|
||||
| `ref` | `cache-to`,`cache-from` | String | | Full name of the cache image to import. |
|
||||
| `dest` | `cache-to` | String | | Path of the local directory where cache gets exported to. |
|
||||
| `mode` | `cache-to` | `min`,`max` | `min` | Cache layers to export, see [cache mode][1]. |
|
||||
|
@ -69,4 +69,4 @@ fail, but the build will continue.
|
|||
For an introduction to caching see [Optimizing builds with cache](../index.md).
|
||||
|
||||
For more information on the `registry` cache backend, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit#registry-push-image-and-cache-separately){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit#registry-push-image-and-cache-separately){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -9,8 +9,8 @@ keywords: build, buildx, cache, backend, s3
|
|||
> `moby/buildkit:master` image in your Buildx driver.
|
||||
|
||||
The `s3` cache storage uploads your resulting build cache to
|
||||
[Amazon S3 file storage service](https://aws.amazon.com/s3/){: target="_blank" rel="noopener" class="_" }, into a specified
|
||||
bucket.
|
||||
[Amazon S3 file storage service](https://aws.amazon.com/s3/){:target="blank" rel="noopener" class=""},
|
||||
into a specified bucket.
|
||||
|
||||
> **Note**
|
||||
>
|
||||
|
@ -35,7 +35,7 @@ The following table describes the available CSV parameters that you can pass to
|
|||
`--cache-to` and `--cache-from`.
|
||||
|
||||
| Name | Option | Type | Default | Description |
|
||||
| ------------------- | ----------------------- | ----------- | ------- | -------------------------------------------- |
|
||||
|---------------------|-------------------------|-------------|---------|----------------------------------------------|
|
||||
| `region` | `cache-to`,`cache-from` | String | | Geographic location. |
|
||||
| `bucket` | `cache-to`,`cache-from` | String | | Name of the S3 bucket used for caching |
|
||||
| `name` | `cache-to`,`cache-from` | String | | Name of the cache image |
|
||||
|
@ -51,8 +51,7 @@ The following table describes the available CSV parameters that you can pass to
|
|||
|
||||
`access_key_id`, `secret_access_key`, and `session_token`, if left unspecified,
|
||||
are read from environment variables on the BuildKit server following the scheme
|
||||
for the
|
||||
[AWS Go SDK](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html){: target="_blank" rel="noopener" class="_" }.
|
||||
for the [AWS Go SDK](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html){:target="blank" rel="noopener" class=""}.
|
||||
The environment variables are read from the server, not the Buildx client.
|
||||
|
||||
<!-- FIXME: update once https://github.com/docker/buildx/pull/1294 is released -->
|
||||
|
@ -62,4 +61,4 @@ The environment variables are read from the server, not the Buildx client.
|
|||
For an introduction to caching see [Optimizing builds with cache](../index.md).
|
||||
|
||||
For more information on the `s3` cache backend, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit#s3-cache-experimental){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit#s3-cache-experimental){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -199,14 +199,12 @@ layers to a minimum.
|
|||
|
||||
#### Use an appropriate base image
|
||||
|
||||
Docker provides over 170 pre-built
|
||||
[official images](https://hub.docker.com/search?q=&image_filter=official) for
|
||||
almost every common development scenario. For example, if you're building a Java
|
||||
web server, use a dedicated image such as
|
||||
[`openjdk`](https://hub.docker.com/_/openjdk/). Even when there's not an
|
||||
official image for what you might want, Docker provides images from
|
||||
[verified publishers](https://hub.docker.com/search?q=&image_filter=store) and
|
||||
[open source partners](https://hub.docker.com/search?q=&image_filter=open_source)
|
||||
Docker provides over 170 pre-built [official images](https://hub.docker.com/search?q=&image_filter=official){:target="blank" rel="noopener" class=""}
|
||||
for almost every common development scenario. For example, if you're building a
|
||||
Java web server, use a dedicated image such as [`openjdk`](https://hub.docker.com/_/openjdk/){:target="blank" rel="noopener" class=""}.
|
||||
Even when there's not an official image for what you might want, Docker provides
|
||||
images from [verified publishers](https://hub.docker.com/search?q=&image_filter=store){:target="blank" rel="noopener" class=""}
|
||||
and [open source partners](https://hub.docker.com/search?q=&image_filter=open_source){:target="blank" rel="noopener" class=""}
|
||||
that can help you on your way. The Docker community often produces third-party
|
||||
images to use as well.
|
||||
|
||||
|
@ -275,9 +273,8 @@ RUN echo "the first command" && \
|
|||
```
|
||||
|
||||
Another shell feature that allows you to simplify and concatenate commands in a
|
||||
neat way are [`heredocs`](https://en.wikipedia.org/wiki/Here_document){:
|
||||
target="blank" rel="noopener" class="\_"}. It enables you to create multi-line
|
||||
scripts with good readability:
|
||||
neat way are [`heredocs`](https://en.wikipedia.org/wiki/Here_document){:target="blank" rel="noopener" class=""}.
|
||||
It enables you to create multi-line scripts with good readability:
|
||||
|
||||
```dockerfile
|
||||
RUN <<EOF
|
||||
|
|
|
@ -32,7 +32,7 @@ The following table describes the available driver-specific options that you can
|
|||
pass to `--driver-opt`:
|
||||
|
||||
| Parameter | Type | Default | Description |
|
||||
| --------------- | ------ | ---------------- | ------------------------------------------------------------------------------------------ |
|
||||
|-----------------|--------|------------------|--------------------------------------------------------------------------------------------|
|
||||
| `image` | String | | Sets the image to use for running BuildKit. |
|
||||
| `network` | String | | Sets the network mode for running the BuildKit container. |
|
||||
| `cgroup-parent` | String | `/docker/buildx` | Sets the cgroup parent of the BuildKit container if Docker is using the `cgroupfs` driver. |
|
||||
|
@ -41,9 +41,9 @@ pass to `--driver-opt`:
|
|||
## Usage
|
||||
|
||||
When you run a build, Buildx pulls the specified `image` (by default,
|
||||
[`moby/buildkit`](https://hub.docker.com/r/moby/buildkit)){: target="_blank" rel="noopener" class="_" }. When the container
|
||||
has started, Buildx submits the build submitted to the containerized build
|
||||
server.
|
||||
[`moby/buildkit`](https://hub.docker.com/r/moby/buildkit)){:target="blank" rel="noopener" class=""}.
|
||||
When the container has started, Buildx submits the build submitted to the
|
||||
containerized build server.
|
||||
|
||||
```console
|
||||
$ docker buildx build -t <image> --builder=container .
|
||||
|
@ -84,8 +84,8 @@ REPOSITORY TAG IMAGE ID CREATED
|
|||
|
||||
## Cache persistence
|
||||
|
||||
The `docker-container` driver supports cache persistence, as it stores all of
|
||||
the BuildKit state and related cache into a dedicated Docker volume.
|
||||
The `docker-container` driver supports cache persistence, as it stores all the
|
||||
BuildKit state and related cache into a dedicated Docker volume.
|
||||
|
||||
To persist the `docker-container` driver's cache, even after recreating the
|
||||
driver using `docker buildx rm` and `docker buildx create`, you can destroy the
|
||||
|
@ -119,9 +119,9 @@ container
|
|||
|
||||
## QEMU
|
||||
|
||||
The `docker-container` driver supports using [QEMU](https://www.qemu.org/){: target="_blank" rel="noopener" class="_" } (user
|
||||
mode) to build non-native platforms. Use the `--platform` flag to specify which
|
||||
architectures that you want to build for.
|
||||
The `docker-container` driver supports using [QEMU](https://www.qemu.org/){:target="blank" rel="noopener" class=""}
|
||||
(user mode) to build non-native platforms. Use the `--platform` flag to specify
|
||||
which architectures that you want to build for.
|
||||
|
||||
For example, to build a Linux image for `amd64` and `arm64`:
|
||||
|
||||
|
@ -142,4 +142,4 @@ $ docker buildx build \
|
|||
## Further reading
|
||||
|
||||
For more information on the Docker container driver, see the
|
||||
[buildx reference](../../../../engine/reference/commandline/buildx_create/#driver).
|
||||
[buildx reference](../../../engine/reference/commandline/buildx_create.md#driver).
|
||||
|
|
|
@ -32,4 +32,4 @@ If you need additional configuration and flexibility, consider using the
|
|||
## Further reading
|
||||
|
||||
For more information on the Docker driver, see the
|
||||
[buildx reference](../../../../engine/reference/commandline/buildx_create/#driver).
|
||||
[buildx reference](../../../engine/reference/commandline/buildx_create.md#driver).
|
||||
|
|
|
@ -19,15 +19,15 @@ prioritizes simplicity and ease of use. It has limited support for advanced
|
|||
features like caching and output formats, and isn't configurable. Other drivers
|
||||
provide more flexibility and are better at handling advanced scenarios.
|
||||
|
||||
The following table outlines some of the differences between drivers.
|
||||
The following table outlines some differences between drivers.
|
||||
|
||||
| Feature | `docker` | `docker-container` | `kubernetes` | `remote` |
|
||||
| :--------------------------- | :---------: | :----------------: | :----------: | :----------------: |
|
||||
| **Automatically load image** | ✅ | | | |
|
||||
| **Cache export** | Inline only | ✅ | ✅ | ✅ |
|
||||
| **Tarball output** | | ✅ | ✅ | ✅ |
|
||||
| **Multi-arch images** | | ✅ | ✅ | ✅ |
|
||||
| **BuildKit configuration** | | ✅ | ✅ | Managed externally |
|
||||
|:-----------------------------|:-----------:|:------------------:|:------------:|:------------------:|
|
||||
| **Automatically load image** | ✅ | | | |
|
||||
| **Cache export** | Inline only | ✅ | ✅ | ✅ |
|
||||
| **Tarball output** | | ✅ | ✅ | ✅ |
|
||||
| **Multi-arch images** | | ✅ | ✅ | ✅ |
|
||||
| **BuildKit configuration** | | ✅ | ✅ | Managed externally |
|
||||
|
||||
## List available builders
|
||||
|
||||
|
@ -55,14 +55,13 @@ desktop-linux * docker
|
|||
```
|
||||
|
||||
This is because the Docker driver builders are automatically pulled from the
|
||||
available [Docker Contexts](../../../engine/context/working-with-contexts/).
|
||||
available [Docker Contexts](../../../engine/context/working-with-contexts.md).
|
||||
When you add new contexts using `docker context create`, these will appear in
|
||||
your list of buildx builders.
|
||||
|
||||
## Create a new builder
|
||||
|
||||
Use the
|
||||
[`docker buildx create`](../../../engine/reference/commandline/buildx_create/)
|
||||
Use the [`docker buildx create`](../../../engine/reference/commandline/buildx_create.md)
|
||||
command to create a builder, and specify the driver using the `--driver` option.
|
||||
|
||||
```console
|
||||
|
|
|
@ -26,7 +26,7 @@ The following table describes the available driver-specific options that you can
|
|||
pass to `--driver-opt`:
|
||||
|
||||
| Parameter | Type | Default | Description |
|
||||
| ----------------- | ----------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
|-------------------|-------------------|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `image` | String | | Sets the image to use for running BuildKit. |
|
||||
| `namespace` | String | Namespace in current Kubernetes context | Sets the Kubernetes namespace. |
|
||||
| `replicas` | Integer | 1 | Sets the number of Pod replicas to create. See [scaling BuildKit][1] |
|
||||
|
@ -62,7 +62,7 @@ is configurable using the following driver options:
|
|||
|
||||
These options allow requesting and limiting the resources available to each
|
||||
BuildKit pod according to the official Kubernetes documentation
|
||||
[here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/){: target="_blank" rel="noopener" class="_" }.
|
||||
[here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
For example, to create 4 replica BuildKit pods:
|
||||
|
||||
|
@ -96,7 +96,7 @@ replicas. `sticky` (the default) attempts to connect the same build performed
|
|||
multiple times to the same node each time, ensuring better use of local cache.
|
||||
|
||||
For more information on scalability, see the options for
|
||||
[buildx create](../../../../engine/reference/commandline/buildx_create/#driver-opt).
|
||||
[buildx create](../../../engine/reference/commandline/buildx_create.md#driver-opt).
|
||||
|
||||
## Node assignment
|
||||
|
||||
|
@ -133,9 +133,9 @@ leveraging the native architecture of nodes.
|
|||
### QEMU
|
||||
|
||||
Like the `docker-container` driver, the Kubernetes driver also supports using
|
||||
[QEMU](https://www.qemu.org/) (user mode){: target="_blank" rel="noopener" class="_" } to build images for non-native
|
||||
platforms. Include the `--platform` flag and specify which platforms you want to
|
||||
output to.
|
||||
[QEMU](https://www.qemu.org/){:target="blank" rel="noopener" class=""} (user mode)
|
||||
to build images for non-native platforms. Include the `--platform` flag and
|
||||
specify which platforms you want to output to.
|
||||
|
||||
For example, to build a Linux image for `amd64` and `arm64`:
|
||||
|
||||
|
@ -220,14 +220,14 @@ combined, by specifying those platforms together in your buildx command:
|
|||
$ docker buildx build --builder=kube --platform=linux/amd64,linux/arm64 -t <user>/<image> --push .
|
||||
```
|
||||
|
||||
You can repeat the `buildx create --append` command for as many different
|
||||
architectures that you want to support.
|
||||
You can repeat the `buildx create --append` command for as many architectures
|
||||
that you want to support.
|
||||
|
||||
## Rootless mode
|
||||
|
||||
The Kubernetes driver supports rootless mode. For more information on how
|
||||
rootless mode works, and it's requirements, see
|
||||
[here](https://github.com/moby/buildkit/blob/master/docs/rootless.md){: target="_blank" rel="noopener" class="_" }.
|
||||
[here](https://github.com/moby/buildkit/blob/master/docs/rootless.md){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
To turn it on in your cluster, you can use the `rootless=true` driver option:
|
||||
|
||||
|
@ -255,10 +255,10 @@ This guide shows you how to:
|
|||
Prerequisites:
|
||||
|
||||
- You have an existing Kubernetes cluster. If you don't already have one, you
|
||||
can follow along by installing [minikube](https://minikube.sigs.k8s.io/docs/){: target="_blank" rel="noopener" class="_" }.
|
||||
can follow along by installing [minikube](https://minikube.sigs.k8s.io/docs/){:target="blank" rel="noopener" class=""}.
|
||||
- The cluster you want to connect to is accessible via the `kubectl` command,
|
||||
with the `KUBECONFIG` environment variable
|
||||
[set appropriately](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable){: target="_blank" rel="noopener" class="_" }
|
||||
[set appropriately](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable){:target="blank" rel="noopener" class=""}
|
||||
if necessary.
|
||||
|
||||
1. Create a `buildkit` namespace.
|
||||
|
@ -325,4 +325,4 @@ That's it! You've now built an image from a Kubernetes pod, using Buildx!
|
|||
## Further reading
|
||||
|
||||
For more information on the Kubernetes driver, see the
|
||||
[buildx reference](../../../../engine/reference/commandline/buildx_create/#driver).
|
||||
[buildx reference](../../../engine/reference/commandline/buildx_create.md#driver).
|
||||
|
|
|
@ -23,7 +23,7 @@ The following table describes the available driver-specific options that you can
|
|||
pass to `--driver-opt`:
|
||||
|
||||
| Parameter | Type | Default | Description |
|
||||
| ------------ | ------ | ------------------ | ---------------------------------------------------------- |
|
||||
|--------------|--------|--------------------|------------------------------------------------------------|
|
||||
| `key` | String | | Sets the TLS client key. |
|
||||
| `cert` | String | | Sets the TLS client certificate to present to `buildkitd`. |
|
||||
| `cacert` | String | | Sets the TLS certificate authority used for validation. |
|
||||
|
@ -34,7 +34,8 @@ pass to `--driver-opt`:
|
|||
This guide shows you how to create a setup with a BuildKit daemon listening on a
|
||||
Unix socket, and have Buildx connect through it.
|
||||
|
||||
1. Ensure that [BuildKit](https://github.com/moby/buildkit){: target="_blank" rel="noopener" class="_" } is installed.
|
||||
1. Ensure that [BuildKit](https://github.com/moby/buildkit){:target="blank" rel="noopener" class=""}
|
||||
is installed.
|
||||
|
||||
For example, you can launch an instance of buildkitd with:
|
||||
|
||||
|
@ -42,11 +43,9 @@ Unix socket, and have Buildx connect through it.
|
|||
$ sudo ./buildkitd --group $(id -gn) --addr unix://$HOME/buildkitd.sock
|
||||
```
|
||||
|
||||
Alternatively,
|
||||
[see here](https://github.com/moby/buildkit/blob/master/docs/rootless.md){: target="_blank" rel="noopener" class="_" } for
|
||||
running buildkitd in rootless mode or
|
||||
[here](https://github.com/moby/buildkit/tree/master/examples/systemd){: target="_blank" rel="noopener" class="_" } for
|
||||
examples of running it as a systemd service.
|
||||
Alternatively, [see here](https://github.com/moby/buildkit/blob/master/docs/rootless.md){:target="blank" rel="noopener" class=""}
|
||||
for running buildkitd in rootless mode or [here](https://github.com/moby/buildkit/tree/master/examples/systemd){:target="blank" rel="noopener" class=""}
|
||||
for examples of running it as a systemd service.
|
||||
|
||||
2. Check that you have a Unix socket that you can connect to.
|
||||
|
||||
|
@ -97,8 +96,7 @@ but this is for illustration purposes.)
|
|||
|
||||
1. Generate certificates for BuildKit.
|
||||
|
||||
You can use the
|
||||
[create-certs.sh](https://github.com/moby/buildkit/v0.10.3/master/examples/kubernetes/create-certs.sh){: target="_blank" rel="noopener" class="_" }
|
||||
You can use the [create-certs.sh](https://github.com/moby/buildkit/v0.10.3/master/examples/kubernetes/create-certs.sh){:target="blank" rel="noopener" class=""}
|
||||
script as a starting point. Note that while it's possible to expose BuildKit
|
||||
over TCP without using TLS, it's not recommended. Doing so allows arbitrary
|
||||
access to BuildKit without credentials.
|
||||
|
@ -151,11 +149,10 @@ pods, the Buildx builder will need to be recreated from within each pod or
|
|||
copied between them.
|
||||
|
||||
1. Create a Kubernetes deployment of `buildkitd`, as per the instructions
|
||||
[here](https://github.com/moby/buildkit/tree/master/examples/kubernetes){: target="_blank" rel="noopener" class="_" }.
|
||||
[here](https://github.com/moby/buildkit/tree/master/examples/kubernetes){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
Following the guide, create certificates for the BuildKit daemon and client
|
||||
using
|
||||
[create-certs.sh](https://github.com/moby/buildkit/blob/v0.10.3/examples/kubernetes/create-certs.sh){: target="_blank" rel="noopener" class="_" },
|
||||
using [create-certs.sh](https://github.com/moby/buildkit/blob/v0.10.3/examples/kubernetes/create-certs.sh){:target="blank" rel="noopener" class=""},
|
||||
and create a deployment of BuildKit pods with a service that connects to
|
||||
them.
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ The following table describes the available parameters that you can pass to
|
|||
`--output` for `type=image`:
|
||||
|
||||
| Parameter | Type | Default | Description |
|
||||
| ---------------------- | -------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|------------------------|----------------------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `name` | String | | Specify image name(s) |
|
||||
| `push` | `true`,`false` | `false` | Push after creating the image. |
|
||||
| `push-by-digest` | `true`,`false` | `false` | Push image without name. |
|
||||
|
@ -58,9 +58,9 @@ $ docker buildx build \
|
|||
```
|
||||
|
||||
For more information about annotations, see
|
||||
[BuildKit documentation](https://github.com/moby/buildkit/blob/master/docs/annotations.md){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit documentation](https://github.com/moby/buildkit/blob/master/docs/annotations.md){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## Further reading
|
||||
|
||||
For more information on the `image` or `registry` exporters, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit/blob/master/README.md#imageregistry){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit/blob/master/README.md#imageregistry){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -16,10 +16,10 @@ Buildx supports the following exporters:
|
|||
- `local`: exports the build root filesystem into a local directory.
|
||||
- `tar`: packs the build root filesystem into a local tarball.
|
||||
- `oci`: exports the build result to the local filesystem in the
|
||||
[OCI image layout](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-layout.md){: target="_blank" rel="noopener" class="_" }
|
||||
[OCI image layout](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-layout.md){:target="blank" rel="noopener" class=""}
|
||||
format.
|
||||
- `docker`: exports the build result to the local filesystem in the
|
||||
[Docker image](https://github.com/docker/docker/blob/v20.10.2/image/spec/v1.2.md){: target="_blank" rel="noopener" class="_" }
|
||||
[Docker image](https://github.com/docker/docker/blob/v20.10.2/image/spec/v1.2.md){:target="blank" rel="noopener" class=""}
|
||||
format.
|
||||
- `cacheonly`: doesn't export a build output, but runs the build and creates a
|
||||
cache.
|
||||
|
@ -182,7 +182,7 @@ WARNING: No output specified with docker-container driver.
|
|||
## Multiple exporters
|
||||
|
||||
You can only specify a single exporter for any given build (see
|
||||
[this pull request](https://github.com/moby/buildkit/pull/2760) for details){: target="_blank" rel="noopener" class="_" }.
|
||||
[this pull request](https://github.com/moby/buildkit/pull/2760) for details){:target="blank" rel="noopener" class=""}.
|
||||
But you can perform multiple builds one after another to export the same content
|
||||
twice. BuildKit caches the build, so unless any of the layers change, all
|
||||
successive builds following the first are instant.
|
||||
|
@ -197,8 +197,7 @@ $ docker buildx build --output type=local,dest=<path/to/output> .
|
|||
|
||||
## Configuration options
|
||||
|
||||
This section describes some of the configuration options available for
|
||||
exporters.
|
||||
This section describes some configuration options available for exporters.
|
||||
|
||||
The options described here are common for at least two or more exporter types.
|
||||
Additionally, the different exporters types support specific parameters as well.
|
||||
|
@ -241,10 +240,8 @@ the previous compression algorithm.
|
|||
|
||||
> **Note**
|
||||
>
|
||||
> The `gzip` and `estargz` compression methods use the
|
||||
> [`compress/gzip` package](https://pkg.go.dev/compress/gzip){: target="_blank" rel="noopener" class="_" }, while `zstd` uses
|
||||
> the
|
||||
> [`github.com/klauspost/compress/zstd` package](https://github.com/klauspost/compress/tree/master/zstd){: target="_blank" rel="noopener" class="_" }.
|
||||
> The `gzip` and `estargz` compression methods use the [`compress/gzip` package](https://pkg.go.dev/compress/gzip){:target="blank" rel="noopener" class=""},
|
||||
> while `zstd` uses the [`github.com/klauspost/compress/zstd` package](https://github.com/klauspost/compress/tree/master/zstd){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
### OCI media types
|
||||
|
||||
|
|
|
@ -26,10 +26,10 @@ $ docker buildx build --output type=tar[,parameters] .
|
|||
The following table describes the available parameters:
|
||||
|
||||
| Parameter | Type | Default | Description |
|
||||
| --------- | ------ | ------- | --------------------- |
|
||||
|-----------|--------|---------|-----------------------|
|
||||
| `dest` | String | | Path to copy files to |
|
||||
|
||||
## Further reading
|
||||
|
||||
For more information on the `local` or `tar` exporters, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit/blob/master/README.md#local-directory){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit/blob/master/README.md#local-directory){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -5,7 +5,7 @@ keywords: >
|
|||
---
|
||||
|
||||
The `oci` exporter outputs the build result into an
|
||||
[OCI image layout](https://github.com/opencontainers/image-spec/blob/main/image-layout.md){: target="_blank" rel="noopener" class="_" }
|
||||
[OCI image layout](https://github.com/opencontainers/image-spec/blob/main/image-layout.md){:target="blank" rel="noopener" class=""}
|
||||
tarball. The `docker` exporter behaves the same way, except it exports a Docker
|
||||
image layout instead.
|
||||
|
||||
|
@ -28,7 +28,7 @@ $ docker buildx build --output type=docker[,parameters] .
|
|||
The following table describes the available parameters:
|
||||
|
||||
| Parameter | Type | Default | Description |
|
||||
| ------------------- | -------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|---------------------|----------------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `name` | String | | Specify image name(s) |
|
||||
| `dest` | String | | Path |
|
||||
| `tar` | `true`,`false` | `true` | Bundle the output into a tarball layout |
|
||||
|
@ -57,9 +57,9 @@ $ docker buildx build \
|
|||
```
|
||||
|
||||
For more information about annotations, see
|
||||
[BuildKit documentation](https://github.com/moby/buildkit/blob/master/docs/annotations.md){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit documentation](https://github.com/moby/buildkit/blob/master/docs/annotations.md){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## Further reading
|
||||
|
||||
For more information on the `oci` or `docker` exporters, see the
|
||||
[BuildKit README](https://github.com/moby/buildkit/blob/master/README.md#docker-tarball){: target="_blank" rel="noopener" class="_" }.
|
||||
[BuildKit README](https://github.com/moby/buildkit/blob/master/README.md#docker-tarball){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -16,7 +16,7 @@ operating systems, such as Windows.
|
|||
When running an image with multi-platform support, `docker` automatically
|
||||
selects the image that matches your OS and architecture.
|
||||
|
||||
Most of the Docker Official Images on Docker Hub provide a [variety of architectures](https://github.com/docker-library/official-images#architectures-other-than-amd64){: target="_blank" rel="noopener" class="_" }.
|
||||
Most of the Docker Official Images on Docker Hub provide a [variety of architectures](https://github.com/docker-library/official-images#architectures-other-than-amd64){:target="blank" rel="noopener" class=""}.
|
||||
For example, the `busybox` image supports `amd64`, `arm32v5`, `arm32v6`,
|
||||
`arm32v7`, `arm64v8`, `i386`, `ppc64le`, and `s390x`. When running this image
|
||||
on an `x86_64` / `amd64` machine, the `amd64` variant is pulled and run.
|
||||
|
@ -65,7 +65,7 @@ binfmt-support >= 2.1.7. You can check for proper registration by checking if
|
|||
`F` is among the flags in `/proc/sys/fs/binfmt_misc/qemu-*`. While Docker
|
||||
Desktop comes preconfigured with `binfmt_misc` support for additional platforms,
|
||||
for other installations it likely needs to be installed using
|
||||
[`tonistiigi/binfmt`](https://github.com/tonistiigi/binfmt){:target="_blank" rel="noopener" class="_"}
|
||||
[`tonistiigi/binfmt`](https://github.com/tonistiigi/binfmt){:target="blank" rel="noopener" class=""}
|
||||
image.
|
||||
|
||||
```console
|
||||
|
@ -271,6 +271,6 @@ multi-architecture support, which means you can run containers for different
|
|||
Linux architectures such as `arm`, `mips`, `ppc64le`, and even `s390x`.
|
||||
|
||||
This does not require any special configuration in the container itself as it
|
||||
uses [qemu-static](https://wiki.qemu.org/Main_Page){: target="_blank" rel="noopener" class="_" }
|
||||
uses [qemu-static](https://wiki.qemu.org/Main_Page){:target="blank" rel="noopener" class=""}
|
||||
from the **Docker for Mac VM**. Because of this, you can run an ARM container,
|
||||
like the `arm32v7` or `ppc64le` variants of the busybox image.
|
||||
|
|
|
@ -12,8 +12,8 @@ Dockerfiles while keeping them easy to read and maintain.
|
|||
|
||||
> **Acknowledgment**
|
||||
>
|
||||
> Special thanks to [Alex Ellis](https://twitter.com/alexellisuk) for granting
|
||||
> permission to use his blog post [Builder pattern vs. Multi-stage builds in Docker](https://blog.alexellis.io/mutli-stage-docker-builds/)
|
||||
> Special thanks to [Alex Ellis](https://twitter.com/alexellisuk){:target="blank" rel="noopener" class=""}
|
||||
> for granting permission to use his blog post [Builder pattern vs. Multi-stage builds in Docker](https://blog.alexellis.io/mutli-stage-docker-builds/){:target="blank" rel="noopener" class=""}
|
||||
> as the basis of the examples below.
|
||||
|
||||
## Before multi-stage builds
|
||||
|
|
|
@ -73,7 +73,7 @@ says "Hello World".
|
|||
>
|
||||
> If you test the example, make sure to copy over the indentation as well! For
|
||||
> more information about this sample Flask application, check the
|
||||
> [Flask Quickstart](https://flask.palletsprojects.com/en/2.1.x/quickstart/){:target="_blank" rel="noopener" class="_"}
|
||||
> [Flask Quickstart](https://flask.palletsprojects.com/en/2.1.x/quickstart/){:target="blank" rel="noopener" class=""}
|
||||
> page.
|
||||
|
||||
Here's the Dockerfile that will be used to create an image for our application:
|
||||
|
@ -125,7 +125,7 @@ executed on this base image, in this case, an Ubuntu environment. The notation
|
|||
`ubuntu:22.04`, follows the `name:tag` standard for naming docker images. When
|
||||
you build your image you use this notation to name your images and use it to
|
||||
specify any existing Docker image. There are many public images you can
|
||||
leverage in your projects. Explore [Docker Hub](https://hub.docker.com/search?image_filter=official&q=&type=image){:target="_blank" rel="noopener" class="_"}
|
||||
leverage in your projects. Explore [Docker Hub](https://hub.docker.com/search?image_filter=official&q=&type=image){:target="blank" rel="noopener" class=""}
|
||||
to find out.
|
||||
|
||||
```dockerfile
|
||||
|
@ -225,7 +225,7 @@ From your computer, open a browser and navigate to `http://localhost:8000`
|
|||
|
||||
> **Note**
|
||||
>
|
||||
> You can also build and run using [Play with Docker](https://labs.play-with-docker.com){:target="_blank" rel="noopener" class="_"}
|
||||
> You can also build and run using [Play with Docker](https://labs.play-with-docker.com){:target="blank" rel="noopener" class=""}
|
||||
> that provides you with a temporary Docker instance in the cloud.
|
||||
|
||||
## Other resources
|
||||
|
|
|
@ -136,17 +136,15 @@ $ docker buildx build --push --tag myregistry.com/myimage:latest .
|
|||
## CNI networking
|
||||
|
||||
CNI networking for builders can be useful for dealing with network port
|
||||
contention during concurrent builds. CNI is
|
||||
[not yet](https://github.com/moby/buildkit/issues/28){:target="_blank"
|
||||
rel="noopener" class="_"} available in the default BuildKit image. But you can
|
||||
create your own image that includes CNI support.
|
||||
contention during concurrent builds. CNI is [not yet](https://github.com/moby/buildkit/issues/28){:target="blank" rel="noopener" class=""}
|
||||
available in the default BuildKit image. But you can create your own image that
|
||||
includes CNI support.
|
||||
|
||||
The following Dockerfile example shows a custom BuildKit image with CNI support.
|
||||
It uses the
|
||||
[CNI config for integration tests](https://github.com/moby/buildkit/blob/master//hack/fixtures/cni.json){:target="_blank"
|
||||
rel="noopener" class="_"} in BuildKit as an example. Feel free to include your
|
||||
own CNI configuration.
|
||||
It uses the [CNI config for integration tests](https://github.com/moby/buildkit/blob/master//hack/fixtures/cni.json){:target="blank" rel="noopener" class=""}
|
||||
in BuildKit as an example. Feel free to include your own CNI configuration.
|
||||
|
||||
{% raw %}
|
||||
```dockerfile
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
|
@ -167,6 +165,7 @@ RUN apk add --no-cache iptables
|
|||
COPY --from=cni-plugins /opt/cni/bin /opt/cni/bin
|
||||
ADD https://raw.githubusercontent.com/moby/buildkit/${BUILDKIT_VERSION}/hack/fixtures/cni.json /etc/buildkit/cni.json
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Now you can build this image, and create a builder instance from it using
|
||||
[the `--driver-opt image` option](../../engine/reference/commandline/buildx_create.md#driver-opt):
|
||||
|
|
|
@ -33,7 +33,7 @@ Custom Dockerfile implementations allow you to:
|
|||
- Make sure all users are using the same implementation to build your Dockerfile
|
||||
- Use the latest features without updating the Docker daemon
|
||||
- Try out new features or third-party features before they are integrated in the Docker daemon
|
||||
- Use [alternative build definitions, or create your own](https://github.com/moby/buildkit#exploring-llb){:target="_blank" rel="noopener" class="_"}
|
||||
- Use [alternative build definitions, or create your own](https://github.com/moby/buildkit#exploring-llb){:target="blank" rel="noopener" class=""}
|
||||
|
||||
> **Note**
|
||||
>
|
||||
|
@ -50,7 +50,7 @@ channels where new images are released: `stable` and `labs`.
|
|||
|
||||
### Stable channel
|
||||
|
||||
The `stable` channel follows [semantic versioning](https://semver.org){:target="_blank" rel="noopener" class="_"}.
|
||||
The `stable` channel follows [semantic versioning](https://semver.org){:target="blank" rel="noopener" class=""}.
|
||||
For example:
|
||||
|
||||
- `docker/dockerfile:1` - kept updated with the latest `1.x.x` minor _and_ patch
|
||||
|
@ -88,15 +88,14 @@ suffix, for example:
|
|||
Choose a channel that best fits your needs. If you want to benefit from
|
||||
new features, use the `labs` channel. Images in the `labs` channel contain
|
||||
all the features in the `stable` channel, plus early access features.
|
||||
Stable features in the `labs` channel follow
|
||||
[semantic versioning](https://semver.org){:target="_blank" rel="noopener" class="_"},
|
||||
but early access features don't, and newer releases may not be backwards compatible.
|
||||
Pin the version to avoid having to deal with breaking changes.
|
||||
Stable features in the `labs` channel follow [semantic versioning](https://semver.org){:target="blank" rel="noopener" class=""},
|
||||
but early access features don't, and newer releases may not be backwards
|
||||
compatible. Pin the version to avoid having to deal with breaking changes.
|
||||
|
||||
## Other resources
|
||||
|
||||
For documentation on "labs" features, master builds, and nightly feature
|
||||
releases, refer to the description in [the BuildKit source repository on GitHub](https://github.com/moby/buildkit/blob/master/README.md){:target="_blank" rel="noopener" class="_"}.
|
||||
For a full list of available images, visit the [`docker/dockerfile` repository on Docker Hub](https://hub.docker.com/r/docker/dockerfile){:target="_blank" rel="noopener" class="_"},
|
||||
and the [`docker/dockerfile-upstream` repository on Docker Hub](https://hub.docker.com/r/docker/dockerfile-upstream){:target="_blank" rel="noopener" class="_"}
|
||||
releases, refer to the description in [the BuildKit source repository on GitHub](https://github.com/moby/buildkit/blob/master/README.md){:target="blank" rel="noopener" class=""}.
|
||||
For a full list of available images, visit the [`docker/dockerfile` repository on Docker Hub](https://hub.docker.com/r/docker/dockerfile){:target="blank" rel="noopener" class=""},
|
||||
and the [`docker/dockerfile-upstream` repository on Docker Hub](https://hub.docker.com/r/docker/dockerfile-upstream){:target="blank" rel="noopener" class=""}
|
||||
for development builds.
|
||||
|
|
|
@ -6,7 +6,7 @@ keywords: build, buildkit
|
|||
|
||||
## Overview
|
||||
|
||||
[BuildKit](https://github.com/moby/buildkit){:target="_blank" rel="noopener" class="_"}
|
||||
[BuildKit](https://github.com/moby/buildkit){:target="blank" rel="noopener" class=""}
|
||||
is an improved backend to replace the legacy builder. It comes with new and much
|
||||
improved functionality for improving your builds' performance and the
|
||||
reusability of your Dockerfiles. It also introduces support for handling more
|
||||
|
@ -31,7 +31,7 @@ files to be read or uploaded before the work can begin.
|
|||
|
||||
## LLB
|
||||
|
||||
At the core of BuildKit is a [Low-Level Build (LLB)](https://github.com/moby/buildkit#exploring-llb){:target="_blank" rel="noopener" class="_"}
|
||||
At the core of BuildKit is a [Low-Level Build (LLB)](https://github.com/moby/buildkit#exploring-llb){:target="blank" rel="noopener" class=""}
|
||||
definition format. LLB is an intermediate binary format that allows developers
|
||||
to extend BuildKit. LLB defines a content-addressable dependency graph that can
|
||||
be used to put together very complex build definitions. It also supports
|
||||
|
@ -47,7 +47,7 @@ graphs and content mounted to specific operations. This makes it much faster,
|
|||
more precise, and portable. The build cache can even be exported to a registry,
|
||||
where it can be pulled on-demand by subsequent invocations on any host.
|
||||
|
||||
LLB can be generated directly using a [golang client package](https://pkg.go.dev/github.com/moby/buildkit/client/llb)
|
||||
LLB can be generated directly using a [golang client package](https://pkg.go.dev/github.com/moby/buildkit/client/llb){:target="blank" rel="noopener" class=""}
|
||||
that allows defining the relationships between your build operations using Go
|
||||
language primitives. This gives you full power to run anything you can imagine,
|
||||
but will probably not be how most people will define their builds. Instead,
|
||||
|
@ -100,5 +100,5 @@ And restart the Docker daemon.
|
|||
> **Warning**
|
||||
>
|
||||
> BuildKit only supports building Linux containers. Windows support is tracked
|
||||
> in [`moby/buildkit#616`](https://github.com/moby/buildkit/issues/616){:target="_blank" rel="noopener" class="_"}
|
||||
> in [`moby/buildkit#616`](https://github.com/moby/buildkit/issues/616){:target="blank" rel="noopener" class=""}
|
||||
{: .warning}
|
||||
|
|
|
@ -17,7 +17,8 @@ Docker Linux packages also include Docker Buildx when installed using the
|
|||
## Dockerfile
|
||||
|
||||
Here is how to install and use Buildx inside a Dockerfile through the
|
||||
[`docker/buildx-bin`](https://hub.docker.com/r/docker/buildx-bin) image:
|
||||
[`docker/buildx-bin`](https://hub.docker.com/r/docker/buildx-bin){:target="blank" rel="noopener" class=""}
|
||||
image:
|
||||
|
||||
```dockerfile
|
||||
# syntax=docker/dockerfile:1
|
||||
|
@ -40,7 +41,7 @@ RUN docker buildx version
|
|||
> that you follow the [instructions specific for your distribution](#linux-packages).
|
||||
{: .important}
|
||||
|
||||
You can also download the latest binary from the [releases page on GitHub](https://github.com/docker/buildx/releases/latest){:target="_blank" rel="noopener" class="_"}.
|
||||
You can also download the latest binary from the [releases page on GitHub](https://github.com/docker/buildx/releases/latest){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
Rename the relevant binary and copy it to the destination matching your OS:
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@ keywords: ci, github actions, gha, buildkit, buildx
|
|||
---
|
||||
|
||||
This page contains instructions on configuring your BuildKit instances when
|
||||
using our [Setup Buildx Action](https://github.com/docker/setup-buildx-action){: target="_blank" rel="noopener" class="_" }.
|
||||
using our [Setup Buildx Action](https://github.com/docker/setup-buildx-action){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## BuildKit container logs
|
||||
|
||||
To display BuildKit container logs when using the `docker-container` driver,
|
||||
you must either [enable step debug logging](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging){: target="_blank" rel="noopener" class="_" },
|
||||
or set the `--debug` buildkitd flag in the [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx){: target="_blank" rel="noopener" class="_" } action:
|
||||
you must either [enable step debug logging](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging){:target="blank" rel="noopener" class=""},
|
||||
or set the `--debug` buildkitd flag in the [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx){:target="blank" rel="noopener" class=""} action:
|
||||
|
||||
```yaml
|
||||
name: ci
|
||||
|
|
|
@ -9,7 +9,7 @@ Docker GitHub Actions in your CI pipelines.
|
|||
|
||||
## Push to multi-registries
|
||||
|
||||
The following workflow will connect you to Docker Hub and [GitHub Container Registry](https://github.com/docker/login-action#github-container-registry){: target="_blank" rel="noopener" class="_" }
|
||||
The following workflow will connect you to Docker Hub and [GitHub Container Registry](https://github.com/docker/login-action#github-container-registry){:target="blank" rel="noopener" class=""}
|
||||
and push the image to both registries:
|
||||
|
||||
{% raw %}
|
||||
|
@ -64,9 +64,9 @@ jobs:
|
|||
|
||||
## Manage tags and labels
|
||||
|
||||
If you want an "automatic" tag management and [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md){: target="_blank" rel="noopener" class="_" }
|
||||
If you want an "automatic" tag management and [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md){:target="blank" rel="noopener" class=""}
|
||||
for labels, you can do it in a dedicated setup step. The following workflow
|
||||
will use the [Docker Metadata Action](https://github.com/docker/metadata-action){: target="_blank" rel="noopener" class="_" }
|
||||
will use the [Docker Metadata Action](https://github.com/docker/metadata-action){:target="blank" rel="noopener" class=""}
|
||||
to handle tags and labels based on GitHub Actions events and Git metadata:
|
||||
|
||||
{% raw %}
|
||||
|
@ -149,9 +149,9 @@ the `platforms` option, as described in the following example.
|
|||
|
||||
> **Note**
|
||||
>
|
||||
> - For a list of available platforms, see the [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx){: target="_blank" rel="noopener" class="_" }
|
||||
> - For a list of available platforms, see the [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx){:target="blank" rel="noopener" class=""}
|
||||
> action.
|
||||
> - If you want support for more platforms, you can use QEMU with the [Docker Setup QEMU](https://github.com/docker/setup-qemu-action){: target="_blank" rel="noopener" class="_" }
|
||||
> - If you want support for more platforms, you can use QEMU with the [Docker Setup QEMU](https://github.com/docker/setup-qemu-action){:target="blank" rel="noopener" class=""}
|
||||
> action.
|
||||
|
||||
{% raw %}
|
||||
|
@ -296,7 +296,7 @@ jobs:
|
|||
|
||||
> **Warning**
|
||||
>
|
||||
> This cache exporter is experimental. Please provide feedback on [BuildKit repository](https://github.com/moby/buildkit){: target="_blank" rel="noopener" class="_" }
|
||||
> This cache exporter is experimental. Please provide feedback on [BuildKit repository](https://github.com/moby/buildkit){:target="blank" rel="noopener" class=""}
|
||||
> if you experience any issues.
|
||||
{: .warning }
|
||||
|
||||
|
@ -348,12 +348,12 @@ jobs:
|
|||
|
||||
> **Warning**
|
||||
>
|
||||
> At the moment, old cache entries aren't deleted, so the cache size [keeps growing](https://github.com/docker/build-push-action/issues/252){:target="_blank" rel="noopener" class="_"}.
|
||||
> The following example uses the `Move cache` step as a workaround (see [`moby/buildkit#1896`](https://github.com/moby/buildkit/issues/1896){:target="_blank" rel="noopener" class="_"}
|
||||
> At the moment, old cache entries aren't deleted, so the cache size [keeps growing](https://github.com/docker/build-push-action/issues/252){:target="blank" rel="noopener" class=""}.
|
||||
> The following example uses the `Move cache` step as a workaround (see [`moby/buildkit#1896`](https://github.com/moby/buildkit/issues/1896){:target="blank" rel="noopener" class=""}
|
||||
> for more info).
|
||||
{: .warning }
|
||||
|
||||
You can also leverage [GitHub cache](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows)
|
||||
You can also leverage [GitHub cache](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows){:target="blank" rel="noopener" class=""}
|
||||
using the [actions/cache](https://github.com/actions/cache) and [local cache exporter](../../building/cache/backends/local.md)
|
||||
with this action:
|
||||
|
||||
|
@ -412,7 +412,7 @@ jobs:
|
|||
|
||||
## Secrets
|
||||
|
||||
In the following example uses and exposes the [`GITHUB_TOKEN` secret](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret){:target="_blank" rel="noopener" class="_"}
|
||||
In the following example uses and exposes the [`GITHUB_TOKEN` secret](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret){:target="blank" rel="noopener" class=""}
|
||||
as provided by GitHub in your workflow.
|
||||
|
||||
First, create a `Dockerfile` that uses the secret:
|
||||
|
@ -471,7 +471,7 @@ jobs:
|
|||
> "MY_SECRET=./secret.txt"
|
||||
> ```
|
||||
|
||||
If you're using [GitHub secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets){:target="_blank" rel="noopener" class="_"}
|
||||
If you're using [GitHub secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets){:target="blank" rel="noopener" class=""}
|
||||
and need to handle multi-line value, you will need to place the key-value pair
|
||||
between quotes:
|
||||
|
||||
|
@ -615,7 +615,7 @@ jobs:
|
|||
|
||||
## Local registry
|
||||
|
||||
For testing purposes you may need to create a [local registry](https://hub.docker.com/_/registry){: target="_blank" rel="noopener" class="_" }
|
||||
For testing purposes you may need to create a [local registry](https://hub.docker.com/_/registry){:target="blank" rel="noopener" class=""}
|
||||
to push images into:
|
||||
|
||||
```yaml
|
||||
|
@ -662,10 +662,10 @@ jobs:
|
|||
## Share built image between jobs
|
||||
|
||||
As each job is isolated in its own runner, you can't use your built image
|
||||
between jobs, except if you're using [self-hosted runners](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners){: target="_blank" rel="noopener" class="_" }.
|
||||
However, you can [pass data between jobs](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts#passing-data-between-jobs-in-a-workflow){: target="_blank" rel="noopener" class="_" }
|
||||
in a workflow using the [actions/upload-artifact](https://github.com/actions/upload-artifact){: target="_blank" rel="noopener" class="_" }
|
||||
and [actions/download-artifact](https://github.com/actions/download-artifact){: target="_blank" rel="noopener" class="_" }
|
||||
between jobs, except if you're using [self-hosted runners](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners){:target="blank" rel="noopener" class=""}
|
||||
However, you can [pass data between jobs](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts#passing-data-between-jobs-in-a-workflow){:target="blank" rel="noopener" class=""}
|
||||
in a workflow using the [actions/upload-artifact](https://github.com/actions/upload-artifact){:target="blank" rel="noopener" class=""}
|
||||
and [actions/download-artifact](https://github.com/actions/download-artifact){:target="blank" rel="noopener" class=""}
|
||||
actions:
|
||||
|
||||
```yaml
|
||||
|
@ -769,7 +769,7 @@ jobs:
|
|||
|
||||
### Use image in subsequent steps
|
||||
|
||||
By default, the [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx){: target="_blank" rel="noopener" class="_" }
|
||||
By default, the [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx){:target="blank" rel="noopener" class=""}
|
||||
action uses `docker-container` as a build driver, so built Docker images aren't
|
||||
loaded automatically.
|
||||
|
||||
|
@ -879,7 +879,7 @@ jobs:
|
|||
## Update Docker Hub repository description
|
||||
|
||||
You can update the Docker Hub repository description using a third party action
|
||||
called [Docker Hub Description](https://github.com/peter-evans/dockerhub-description){: target="_blank" rel="noopener" class="_" }
|
||||
called [Docker Hub Description](https://github.com/peter-evans/dockerhub-description){:target="blank" rel="noopener" class=""}
|
||||
with this action:
|
||||
|
||||
{% raw %}
|
||||
|
|
|
@ -14,18 +14,18 @@ components for building, annotating, and pushing images.
|
|||
|
||||
The following GitHub Actions are available:
|
||||
|
||||
- [Build and push Docker images](https://github.com/marketplace/actions/build-and-push-docker-images){: target="_blank" rel="noopener" class="_" }:
|
||||
- [Build and push Docker images](https://github.com/marketplace/actions/build-and-push-docker-images){:target="blank" rel="noopener" class=""}:
|
||||
build and push Docker images with BuildKit.
|
||||
- [Docker Login](https://github.com/marketplace/actions/docker-login){: target="_blank" rel="noopener" class="_" }:
|
||||
- [Docker Login](https://github.com/marketplace/actions/docker-login){:target="blank" rel="noopener" class=""}:
|
||||
sign in to a Docker registry.
|
||||
- [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx){: target="_blank" rel="noopener" class="_" }:
|
||||
- [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx){:target="blank" rel="noopener" class=""}:
|
||||
initiates a BuildKit builder.
|
||||
- [Docker Metadata action](https://github.com/marketplace/actions/docker-metadata-action){: target="_blank" rel="noopener" class="_" }:
|
||||
- [Docker Metadata action](https://github.com/marketplace/actions/docker-metadata-action){:target="blank" rel="noopener" class=""}:
|
||||
extracts metadata from Git reference and GitHub events.
|
||||
- [Docker Setup QEMU](https://github.com/marketplace/actions/docker-setup-qemu){: target="_blank" rel="noopener" class="_" }:
|
||||
- [Docker Setup QEMU](https://github.com/marketplace/actions/docker-setup-qemu){:target="blank" rel="noopener" class=""}:
|
||||
installs [QEMU](https://github.com/qemu/qemu) static binaries for multi-arch
|
||||
builds.
|
||||
- [Docker Buildx Bake](https://github.com/marketplace/actions/docker-buildx-bake){: target="_blank" rel="noopener" class="_" }:
|
||||
- [Docker Buildx Bake](https://github.com/marketplace/actions/docker-buildx-bake){:target="blank" rel="noopener" class=""}:
|
||||
enables using high-level builds with [Bake](../../bake/index.md).
|
||||
|
||||
Using Docker's actions provides an easy-to-use interface, while still allowing
|
||||
|
|
|
@ -36,10 +36,10 @@ image, just like you would for any other containerized application.
|
|||
The following links provide instructions for how you can get started using
|
||||
Docker for building your applications in CI:
|
||||
|
||||
- [GitHub Actions](https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action){: target="_blank" rel="noopener" class="_" }
|
||||
- [GitLab](https://docs.gitlab.com/runner/executors/docker.html){: target="_blank" rel="noopener" class="_" }
|
||||
- [Circle CI](https://circleci.com/docs/using-docker/){: target="_blank" rel="noopener" class="_" }
|
||||
- [Render](https://render.com/docs/docker){: target="_blank" rel="noopener" class="_" }
|
||||
- [GitHub Actions](https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action){:target="blank" rel="noopener" class=""}
|
||||
- [GitLab](https://docs.gitlab.com/runner/executors/docker.html){:target="blank" rel="noopener" class=""}
|
||||
- [Circle CI](https://circleci.com/docs/using-docker/){:target="blank" rel="noopener" class=""}
|
||||
- [Render](https://render.com/docs/docker){:target="blank" rel="noopener" class=""}
|
||||
|
||||
### Docker in Docker
|
||||
|
||||
|
@ -47,7 +47,7 @@ You can also use a Dockerized build environment to build container images using
|
|||
Docker. That is, your build environment runs inside a container which itself is
|
||||
equipped to run Docker builds. This method is referred to as "Docker in Docker".
|
||||
|
||||
Docker provides an official [Docker image](https://hub.docker.com/_/docker){: target="_blank" rel="noopener" class="_" }
|
||||
Docker provides an official [Docker image](https://hub.docker.com/_/docker){:target="blank" rel="noopener" class=""}
|
||||
that you can use for this purpose.
|
||||
|
||||
## What's next
|
||||
|
|
|
@ -12,7 +12,7 @@ to set the colors that you would like to use:
|
|||

|
||||
|
||||
Setting `NO_COLOR` to anything will disable any colorized output as recommended
|
||||
by [no-color.org](https://no-color.org/){:target="_blank" rel="noopener" class="_"}:
|
||||
by [no-color.org](https://no-color.org/){:target="blank" rel="noopener" class=""}:
|
||||
|
||||

|
||||
|
||||
|
@ -21,4 +21,4 @@ by [no-color.org](https://no-color.org/){:target="_blank" rel="noopener" class="
|
|||
> Parsing errors will be reported but ignored. This will result in default
|
||||
> color values being used where needed.
|
||||
|
||||
See also [the list of pre-defined colors](https://github.com/moby/buildkit/blob/master/util/progress/progressui/colors.go){:target="_blank" rel="noopener" class="_"}.
|
||||
See also [the list of pre-defined colors](https://github.com/moby/buildkit/blob/master/util/progress/progressui/colors.go){:target="blank" rel="noopener" class=""}.
|
||||
|
|
|
@ -25,11 +25,9 @@ Starting with the [18.09 release](../engine/release-notes/18.09.md#18090),
|
|||
Engine is shipped with Moby [BuildKit](buildkit/index.md), the new component for
|
||||
executing your builds by default.
|
||||
|
||||
The new client
|
||||
[Docker Buildx](https://github.com/docker/buildx){:target="_blank"
|
||||
rel="noopener" class="_"}, is a CLI plugin that extends the docker command with
|
||||
the full support of the features provided by [BuildKit](buildkit/index.md)
|
||||
builder toolkit.
|
||||
The new client [Docker Buildx](https://github.com/docker/buildx){:target="blank" rel="noopener" class=""},
|
||||
is a CLI plugin that extends the docker command with the full support of the
|
||||
features provided by [BuildKit](buildkit/index.md) builder toolkit.
|
||||
[`docker buildx build` command](../engine/reference/commandline/buildx_build.md)
|
||||
provides the same user experience as `docker build` with many new features like
|
||||
creating scoped [builder instances](building/drivers/index.md), building against
|
||||
|
|
|
@ -6,7 +6,7 @@ toc_max: 2
|
|||
---
|
||||
|
||||
This page contains information about the new features, improvements, and bug
|
||||
fixes in [Docker Buildx](https://github.com/docker/buildx){:target="_blank" rel="noopener" class="_"}.
|
||||
fixes in [Docker Buildx](https://github.com/docker/buildx){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.9.1
|
||||
|
||||
|
@ -18,7 +18,7 @@ fixes in [Docker Buildx](https://github.com/docker/buildx){:target="_blank" rel=
|
|||
* Fixed a regression when building Compose files that contain services without a
|
||||
build block {% include github_issue.md repo="docker/buildx" number="1277" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.9.1){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.9.1){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.9.0
|
||||
|
||||
|
@ -113,7 +113,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Fix image tools commands not handling `--builder` flag correctly {% include github_issue.md repo="docker/buildx" number="1067" %}
|
||||
* Fix using custom image together with rootless option {% include github_issue.md repo="docker/buildx" number="1063" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.9.0){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.9.0){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.8.2
|
||||
|
||||
|
@ -126,7 +126,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Fix possible crash on handling progress streams from BuildKit v0.10 {% include github_issue.md repo="docker/buildx" number="1042" %}
|
||||
* Fix parsing groups in `buildx bake` when already loaded by a parent group {% include github_issue.md repo="docker/buildx" number="1021" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.8.2){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.8.2){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.8.1
|
||||
|
||||
|
@ -137,7 +137,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Fix possible panic on handling build context scanning errors {% include github_issue.md repo="docker/buildx" number="1005" %}
|
||||
* Allow `.` on Compose target names in `buildx bake` for backward compatibility {% include github_issue.md repo="docker/buildx" number="1018" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.8.1){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.8.1){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.8.0
|
||||
|
||||
|
@ -187,7 +187,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Fix printing default group on Bake files {% include github_issue.md repo="docker/buildx" number="884" %}
|
||||
* Fix `UsernsMode` when using rootless container {% include github_issue.md repo="docker/buildx" number="887" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.8.0){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.8.0){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.7.1
|
||||
|
||||
|
@ -198,7 +198,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Fix issue with matching exclude rules in `.dockerignore` {% include github_issue.md repo="docker/buildx" number="858" %}
|
||||
* Fix `bake --print` JSON output for current group {% include github_issue.md repo="docker/buildx" number="857" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.7.1){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.7.1){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.7.0
|
||||
|
||||
|
@ -243,7 +243,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Unsupported build flags now show a warning {% include github_issue.md repo="docker/buildx" number="810" %}
|
||||
* Fix reporting error details in some OpenTelemetry traces {% include github_issue.md repo="docker/buildx" number="812" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.7.0){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.7.0){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.6.3
|
||||
|
||||
|
@ -253,13 +253,13 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
|
||||
* Fix BuildKit state volume location for Windows clients {% include github_issue.md repo="docker/buildx" number="751" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.6.3){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.6.3){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.6.2
|
||||
|
||||
{% include release-date.html date="2021-08-21" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.6.2){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.6.2){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
### Fixes
|
||||
|
||||
|
@ -278,7 +278,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Duplicate progress env var {% include github_issue.md repo="docker/buildx" number="693" %}
|
||||
* Should ignore nil client {% include github_issue.md repo="docker/buildx" number="686" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.6.1){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.6.1){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.6.0
|
||||
|
||||
|
@ -303,7 +303,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Bake allows variables across multiple files {% include github_issue.md repo="docker/buildx" number="538" %}
|
||||
* New quiet mode has been added to progress printer {% include github_issue.md repo="docker/buildx" number="558" %}
|
||||
* `kubernetes` driver now supports defining resources/limits {% include github_issue.md repo="docker/buildx" number="618" %}
|
||||
* Buildx binaries can now be accessed through [buildx-bin](https://hub.docker.com/r/docker/buildx-bin){:target="_blank" rel="noopener" class="_"}
|
||||
* Buildx binaries can now be accessed through [buildx-bin](https://hub.docker.com/r/docker/buildx-bin){:target="blank" rel="noopener" class=""}
|
||||
Docker image {% include github_issue.md repo="docker/buildx" number="656" %}
|
||||
|
||||
### Enhancements
|
||||
|
@ -327,7 +327,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* `imagetools create` command now correctly merges JSON descriptor with old one {% include github_issue.md repo="docker/buildx" number="592" %}
|
||||
* Fix building with `--network=none` not requiring extra security entitlements {% include github_issue.md repo="docker/buildx" number="531" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.6.0){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.6.0){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.5.1
|
||||
|
||||
|
@ -338,7 +338,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Fix regression on setting `--platform` on `buildx create` outside
|
||||
`kubernetes` driver {% include github_issue.md repo="docker/buildx" number="475" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.5.1){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.5.1){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.5.0
|
||||
|
||||
|
@ -379,7 +379,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
|
||||
* Handle lowercase Dockerfile name as a fallback for backward compatibility {% include github_issue.md repo="docker/buildx" number="444" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.5.0){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.5.0){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.4.2
|
||||
|
||||
|
@ -400,7 +400,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Ensure `--builder` is wired from root options {% include github_issue.md repo="docker/buildx" number="321" %}
|
||||
* Remove warning for multi-platform iidfile {% include github_issue.md repo="docker/buildx" number="351" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.4.2){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.4.2){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.4.1
|
||||
|
||||
|
@ -411,7 +411,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Fix regression on flag parsing {% include github_issue.md repo="docker/buildx" number="268" %}
|
||||
* Fix using pull and no-cache keys in HCL targets {% include github_issue.md repo="docker/buildx" number="268" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.4.1){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.4.1){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.4.0
|
||||
|
||||
|
@ -431,7 +431,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Bake now supports wildcard overrides for multiple targets {% include github_issue.md repo="docker/buildx" number="164" %}
|
||||
* Container driver allows setting environment variables via `driver-opt` {% include github_issue.md repo="docker/buildx" number="170" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.4.0){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.4.0){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.3.1
|
||||
|
||||
|
@ -447,7 +447,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
* Running Bake with multiple Compose files now merges targets correctly {% include github_issue.md repo="docker/buildx" number="134" %}
|
||||
* Fix bug when building a Dockerfile from stdin (`build -f -`) {% include github_issue.md repo="docker/buildx" number="153" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.3.1){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.3.1){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.3.0
|
||||
|
||||
|
@ -469,7 +469,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
|
||||
* Fix bug where `--build-arg foo` would not read `foo` from environment {% include github_issue.md repo="docker/buildx" number="116" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.3.0){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.3.0){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.2.2
|
||||
|
||||
|
@ -479,7 +479,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
|
||||
* Change Compose file handling to require valid service specifications {% include github_issue.md repo="docker/buildx" number="87" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.2.2){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.2.2){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.2.1
|
||||
|
||||
|
@ -499,7 +499,7 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
|
||||
* Fix parsing target from compose files {% include github_issue.md repo="docker/buildx" number="53" %}
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.2.1){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.2.1){:target="blank" rel="noopener" class=""}.
|
||||
|
||||
## 0.2.0
|
||||
|
||||
|
@ -509,4 +509,4 @@ For more details, see the complete release notes in the [Buildx GitHub repositor
|
|||
|
||||
* First release
|
||||
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.2.0){:target="_blank" rel="noopener" class="_"}.
|
||||
For more details, see the complete release notes in the [Buildx GitHub repository](https://github.com/docker/buildx/releases/tag/v0.2.0){:target="blank" rel="noopener" class=""}.
|
||||
|
|
Loading…
Reference in New Issue