mirror of
https://gitea.com/docker/setup-buildx-action.git
synced 2024-11-25 19:09:34 +01:00
Merge pull request #180 from crazy-max/upd-docs
docs: moved to docs website
This commit is contained in:
commit
39a1a82492
7 changed files with 12 additions and 277 deletions
BIN
.github/buildkit-container-logs.png
vendored
BIN
.github/buildkit-container-logs.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 13 KiB |
49
README.md
49
README.md
|
@ -19,12 +19,7 @@ a [BuildKit](https://github.com/moby/buildkit) container.
|
||||||
___
|
___
|
||||||
|
|
||||||
* [Usage](#usage)
|
* [Usage](#usage)
|
||||||
* [Advanced usage](#advanced-usage)
|
* [Configuring your builder](#configuring-your-builder)
|
||||||
* [Authentication support](docs/advanced/auth.md)
|
|
||||||
* [Append additional nodes to the builder](docs/advanced/append-nodes.md)
|
|
||||||
* [Install by default](docs/advanced/install-default.md)
|
|
||||||
* [BuildKit daemon configuration](docs/advanced/buildkit-config.md)
|
|
||||||
* [Standalone mode](docs/advanced/standalone.md)
|
|
||||||
* [Customizing](#customizing)
|
* [Customizing](#customizing)
|
||||||
* [inputs](#inputs)
|
* [inputs](#inputs)
|
||||||
* [outputs](#outputs)
|
* [outputs](#outputs)
|
||||||
|
@ -32,7 +27,7 @@ ___
|
||||||
* [Notes](#notes)
|
* [Notes](#notes)
|
||||||
* [`nodes` output](#nodes-output)
|
* [`nodes` output](#nodes-output)
|
||||||
* [BuildKit container logs](#buildkit-container-logs)
|
* [BuildKit container logs](#buildkit-container-logs)
|
||||||
* [Keep up-to-date with GitHub Dependabot](#keep-up-to-date-with-github-dependabot)
|
* [Contributing](#contributing)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
@ -59,13 +54,9 @@ jobs:
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v2
|
||||||
```
|
```
|
||||||
|
|
||||||
## Advanced usage
|
## Configuring your builder
|
||||||
|
|
||||||
* [Authentication support](docs/advanced/auth.md)
|
See https://docs.docker.com/build/ci/github-actions/configure-builder/
|
||||||
* [Append additional nodes to the builder](docs/advanced/append-nodes.md)
|
|
||||||
* [Install by default](docs/advanced/install-default.md)
|
|
||||||
* [BuildKit daemon configuration](docs/advanced/buildkit-config.md)
|
|
||||||
* [Standalone mode](docs/advanced/standalone.md)
|
|
||||||
|
|
||||||
## Customizing
|
## Customizing
|
||||||
|
|
||||||
|
@ -153,33 +144,9 @@ The following [official docker environment variables](https://docs.docker.com/en
|
||||||
|
|
||||||
### BuildKit container logs
|
### BuildKit container logs
|
||||||
|
|
||||||
To display BuildKit container logs (when `docker-container` driver is used) you have to [enable step debug logging](https://docs.github.com/en/actions/managing-workflow-runs/enabling-debug-logging#enabling-step-debug-logging),
|
See https://docs.docker.com/build/ci/github-actions/configure-builder/#buildkit-container-logs
|
||||||
or you can also enable debugging in the [setup-buildx action step](https://github.com/docker/setup-buildx-action):
|
|
||||||
|
|
||||||
```yaml
|
## Contributing
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
with:
|
|
||||||
buildkitd-flags: --debug
|
|
||||||
```
|
|
||||||
|
|
||||||
Logs will be available at the end of a job:
|
Want to contribute? Awesome! You can find information about contributing to
|
||||||
|
this project in the [CONTRIBUTING.md](/.github/CONTRIBUTING.md)
|
||||||
![BuildKit container logs](.github/buildkit-container-logs.png)
|
|
||||||
|
|
||||||
## Keep up-to-date with GitHub Dependabot
|
|
||||||
|
|
||||||
Since [Dependabot](https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-github-dependabot)
|
|
||||||
has [native GitHub Actions support](https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#package-ecosystem),
|
|
||||||
to enable it on your GitHub repo all you need to do is add the `.github/dependabot.yml` file:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
version: 2
|
|
||||||
updates:
|
|
||||||
# Maintain dependencies for GitHub Actions
|
|
||||||
- package-ecosystem: "github-actions"
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,56 +1,3 @@
|
||||||
# Append additional nodes to the builder
|
# Append additional nodes to the builder
|
||||||
|
|
||||||
Buildx also supports running builds on multiple machines. This is useful for
|
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/configure-builder/#append-additional-nodes-to-the-builder)
|
||||||
building [multi-platform images](https://docs.docker.com/build/building/multi-platform/)
|
|
||||||
on native nodes for more complicated cases that are not handled by QEMU and
|
|
||||||
generally have better performance or for distributing the build across multiple
|
|
||||||
machines.
|
|
||||||
|
|
||||||
You can append nodes to the builder that is going to be created with the
|
|
||||||
`append` input in the form of a YAML string document to remove limitations
|
|
||||||
intrinsically linked to GitHub Actions (only string format is handled in the
|
|
||||||
input fields):
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
|-------------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
||||||
| `name` | String | [Name of the node](https://docs.docker.com/engine/reference/commandline/buildx_create/#node). If empty, it is the name of the builder it belongs to, with an index number suffix. This is useful to set it if you want to modify/remove a node in an underlying step of you workflow. |
|
|
||||||
| `endpoint` | String | [Docker context or endpoint](https://docs.docker.com/engine/reference/commandline/buildx_create/#description) of the node to add to the builder |
|
|
||||||
| `driver-opts` | List | List of additional [driver-specific options](https://docs.docker.com/engine/reference/commandline/buildx_create/#driver-opt) |
|
|
||||||
| `buildkitd-flags` | String | [Flags for buildkitd](https://docs.docker.com/engine/reference/commandline/buildx_create/#buildkitd-flags) daemon |
|
|
||||||
| `platforms` | String | Fixed [platforms](https://docs.docker.com/engine/reference/commandline/buildx_create/#platform) for the node. If not empty, values take priority over the detected ones. |
|
|
||||||
|
|
||||||
Here is an example using remote nodes with the [`remote` driver](https://docs.docker.com/build/building/drivers/remote/)
|
|
||||||
and [TLS authentication](auth.md#tls-authentication):
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: ci
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildx:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
with:
|
|
||||||
driver: remote
|
|
||||||
endpoint: tcp://oneprovider:1234
|
|
||||||
append: |
|
|
||||||
- endpoint: tcp://graviton2:1234
|
|
||||||
platforms: linux/arm64
|
|
||||||
- endpoint: tcp://linuxone:1234
|
|
||||||
platforms: linux/s390x
|
|
||||||
env:
|
|
||||||
BUILDER_NODE_0_AUTH_TLS_CACERT: ${{ secrets.ONEPROVIDER_CA }}
|
|
||||||
BUILDER_NODE_0_AUTH_TLS_CERT: ${{ secrets.ONEPROVIDER_CERT }}
|
|
||||||
BUILDER_NODE_0_AUTH_TLS_KEY: ${{ secrets.ONEPROVIDER_KEY }}
|
|
||||||
BUILDER_NODE_1_AUTH_TLS_CACERT: ${{ secrets.GRAVITON2_CA }}
|
|
||||||
BUILDER_NODE_1_AUTH_TLS_CERT: ${{ secrets.GRAVITON2_CERT }}
|
|
||||||
BUILDER_NODE_1_AUTH_TLS_KEY: ${{ secrets.GRAVITON2_KEY }}
|
|
||||||
BUILDER_NODE_2_AUTH_TLS_CACERT: ${{ secrets.LINUXONE_CA }}
|
|
||||||
BUILDER_NODE_2_AUTH_TLS_CERT: ${{ secrets.LINUXONE_CERT }}
|
|
||||||
BUILDER_NODE_2_AUTH_TLS_KEY: ${{ secrets.LINUXONE_KEY }}
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,64 +1,3 @@
|
||||||
# Authentication support
|
# Authentication support
|
||||||
|
|
||||||
## SSH authentication
|
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/configure-builder/#authentication-for-remote-builders)
|
||||||
|
|
||||||
To be able to connect to an SSH endpoint using the [`docker-container` driver](https://docs.docker.com/build/building/drivers/docker-container/),
|
|
||||||
you have to set up the SSH private key and configuration on the GitHub Runner:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: ci
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildx:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Set up SSH
|
|
||||||
uses: MrSquaare/ssh-setup-action@523473d91581ccbf89565e12b40faba93f2708bd # v1.1.0
|
|
||||||
with:
|
|
||||||
host: graviton2
|
|
||||||
private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
||||||
private-key-name: aws_graviton2
|
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
with:
|
|
||||||
endpoint: ssh://me@graviton2
|
|
||||||
```
|
|
||||||
|
|
||||||
## TLS authentication
|
|
||||||
|
|
||||||
You can also [set up a remote BuildKit instance](https://docs.docker.com/build/building/drivers/remote/#remote-buildkit-in-docker-container)
|
|
||||||
using the remote driver. To ease the integration in your workflow, we put in
|
|
||||||
place environment variables that will set up authentication using the BuildKit
|
|
||||||
client certificates for the `tcp://` endpoint where `<idx>` is the position of
|
|
||||||
the node in the list of nodes:
|
|
||||||
|
|
||||||
* `BUILDER_NODE_<idx>_AUTH_TLS_CACERT`
|
|
||||||
* `BUILDER_NODE_<idx>_AUTH_TLS_CERT`
|
|
||||||
* `BUILDER_NODE_<idx>_AUTH_TLS_KEY`
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: ci
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildx:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
with:
|
|
||||||
driver: remote
|
|
||||||
endpoint: tcp://graviton2:1234
|
|
||||||
env:
|
|
||||||
BUILDER_NODE_0_AUTH_TLS_CACERT: ${{ secrets.GRAVITON2_CA }}
|
|
||||||
BUILDER_NODE_0_AUTH_TLS_CERT: ${{ secrets.GRAVITON2_CERT }}
|
|
||||||
BUILDER_NODE_0_AUTH_TLS_KEY: ${{ secrets.GRAVITON2_KEY }}
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,67 +1,3 @@
|
||||||
# BuildKit daemon configuration
|
# BuildKit daemon configuration
|
||||||
|
|
||||||
You can provide a [BuildKit configuration](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md)
|
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/configure-builder/#daemon-configuration)
|
||||||
to your builder if you're using the [`docker-container` driver](https://docs.docker.com/build/building/drivers/docker-container/)
|
|
||||||
(default) with the `config` or `config-inline` inputs:
|
|
||||||
|
|
||||||
## Registry mirror
|
|
||||||
|
|
||||||
You can configure a registry mirror using an inline block directly in your
|
|
||||||
workflow with the `config-inline` input:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: ci
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildx:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
with:
|
|
||||||
config-inline: |
|
|
||||||
[registry."docker.io"]
|
|
||||||
mirrors = ["mirror.gcr.io"]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Max parallelism
|
|
||||||
|
|
||||||
You can limit the parallelism of the BuildKit solver which is particularly
|
|
||||||
useful for low-powered machines.
|
|
||||||
|
|
||||||
You can use the `config-inline` input like the previous example, or you can use
|
|
||||||
a dedicated BuildKit config file from your repo if you want with the
|
|
||||||
`config` input:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
# .github/buildkitd.toml
|
|
||||||
[worker.oci]
|
|
||||||
max-parallelism = 4
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: ci
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildx:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
with:
|
|
||||||
config: .github/buildkitd.toml
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
# Install by default
|
|
||||||
|
|
||||||
If you want set up the `docker build` command as an alias to
|
|
||||||
`docker buildx build`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: ci
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildx:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
with:
|
|
||||||
install: true
|
|
||||||
-
|
|
||||||
name: Build
|
|
||||||
run: |
|
|
||||||
docker build . # will run buildx
|
|
||||||
```
|
|
|
@ -1,29 +1,3 @@
|
||||||
# Standalone mode
|
# Standalone mode
|
||||||
|
|
||||||
If you don't have the Docker CLI installed on the GitHub Runner, Buildx binary
|
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/configure-builder/#standalone-mode)
|
||||||
is invoked directly, instead of calling it as a docker plugin. This can be
|
|
||||||
useful if you want to use the `kubernetes` driver in your self-hosted runner:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: ci
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
buildx:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
with:
|
|
||||||
driver: kubernetes
|
|
||||||
-
|
|
||||||
name: Build
|
|
||||||
run: |
|
|
||||||
buildx build .
|
|
||||||
```
|
|
||||||
|
|
Loading…
Reference in a new issue