GitHub Action to set up Docker Buildx
Find a file
CrazyMax 48948ec5e2
Merge remote-tracking branch 'upstream/master' into add-context-input
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2020-09-08 11:31:08 +02:00
.github Update screenshot 2020-09-06 20:18:45 +02:00
__tests__ Check buildx version 2020-09-03 21:02:36 +02:00
dist Merge remote-tracking branch 'upstream/master' into add-context-input 2020-09-08 11:31:08 +02:00
hack Add container based dev flow (#4) 2020-08-26 23:48:38 +00:00
src Merge remote-tracking branch 'upstream/master' into add-context-input 2020-09-08 11:31:08 +02:00
.editorconfig Initial commit (docker/build-push-action#87) 2020-08-18 17:40:31 +02:00
.gitattributes Initial commit (docker/build-push-action#87) 2020-08-18 17:40:31 +02:00
.gitignore Initial commit (docker/build-push-action#87) 2020-08-18 17:40:31 +02:00
.prettierrc.json Initial commit (docker/build-push-action#87) 2020-08-18 17:40:31 +02:00
action.yml Add context input (#16) 2020-09-06 16:37:52 +02:00
CHANGELOG.md Update CHANGELOG 2020-08-26 17:37:33 +02:00
docker-bake.hcl Add container based dev flow (#4) 2020-08-26 23:48:38 +00:00
Dockerfile dockerfile: fix validate-yarn target 2020-08-26 18:31:18 -07:00
jest.config.js Initial commit (docker/build-push-action#87) 2020-08-18 17:40:31 +02:00
LICENSE Initial commit (docker/build-push-action#87) 2020-08-18 17:40:31 +02:00
package.json Bump @actions/core from 1.2.4 to 1.2.5 2020-08-27 04:27:16 +00:00
README.md Add context input (#16) 2020-09-06 16:37:52 +02:00
tsconfig.json Initial commit (docker/build-push-action#87) 2020-08-18 17:40:31 +02:00
yarn.lock Bump @actions/core from 1.2.4 to 1.2.5 2020-08-27 04:27:16 +00:00

GitHub release GitHub marketplace CI workflow Test workflow Codecov

About

GitHub Action to set up Docker Buildx.

💡 See also:

Screenshot


Usage

Quick start

name: ci

on:
  push:

jobs:
  buildx:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      -
        name: Set up Docker Buildx
        id: buildx
        uses: docker/setup-buildx-action@master
        with:
          version: latest
      -
        name: Builder instance name
        run: echo ${{ steps.buildx.outputs.name }}
      -
        name: Available platforms
        run: echo ${{ steps.buildx.outputs.platforms }}

With QEMU

If you want support for more platforms you can use our setup-qemu action:

name: ci

on:
  push:

jobs:
  buildx:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@master
        with:
          platforms: all
      -
        name: Set up Docker Buildx
        id: buildx
        uses: docker/setup-buildx-action@master
        with:
          version: latest
      -
        name: Available platforms
        run: echo ${{ steps.buildx.outputs.platforms }}

Install by default

Implemented with https://github.com/docker/buildx#setting-buildx-as-default-builder-in-docker-1903

name: ci

on:
  push:

jobs:
  buildx:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      -
        uses: docker/setup-buildx-action@master
        id: buildx
        with:
          install: true
      -
        name: Build
        run: |
          docker build . # will run buildx          

Customizing

inputs

Following inputs can be used as step.with keys

Name Type Description
version String Buildx version. (eg. v0.3.0, latest)
driver String Sets the builder driver to be used (default docker-container)
driver-opts CSV List of additional driver-specific options (eg. image=moby/buildkit:master)
buildkitd-flags String Flags for buildkitd daemon (since buildx v0.3.0)
install Bool Sets up docker build command as an alias to docker buildx (default false)
use Bool Switch to this builder instance (default true)
context String Name of a context from docker context ls or an endpoint as the address for docker socket (eg. DOCKER_HOST value)

CSV type must be a newline-delimited string

driver-opts: image=moby/buildkit:master
driver-opts: |
  image=moby/buildkit:master
  network=host  

outputs

Following outputs are available

Name Type Description
name String Builder instance name
platforms String Available platforms (comma separated)

environment variables

The following official docker environment variables are supported:

Name Type Default Description
DOCKER_CONFIG String ~/.docker The location of your client configuration files

Keep up-to-date with GitHub Dependabot

Since Dependabot has native GitHub Actions support, to enable it on your GitHub repo all you need to do is add the .github/dependabot.yml file:

version: 2
updates:
  # Maintain dependencies for GitHub Actions
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "daily"

Limitation

This action is only available for Linux virtual environments.