diff --git a/.github/setup-buildx-action.png b/.github/setup-buildx-action.png index 0542670..64f879e 100644 Binary files a/.github/setup-buildx-action.png and b/.github/setup-buildx-action.png differ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4837fbc..e5de820 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,6 +143,39 @@ jobs: docker buildx inspect | grep Driver | grep docker docker buildx inspect | grep Status | grep running + endpoint: + runs-on: ubuntu-latest + services: + dind: + image: docker:dind + options: >- + --privileged + --health-cmd "docker info" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + env: + DOCKER_TLS_CERTDIR: "" + ports: + - 2375:2375 + steps: + - + name: Checkout + uses: actions/checkout@v2.3.2 + - + name: Create context + run: | + docker context create mycontext --docker host=tcp://127.0.0.1:2375 + - + name: Check context + run: | + docker --context mycontext info + - + name: Set up Docker Buildx + uses: ./ + with: + endpoint: mycontext + with-qemu: runs-on: ubuntu-latest strategy: diff --git a/README.md b/README.md index 3f7bb03..5be017d 100644 --- a/README.md +++ b/README.md @@ -128,12 +128,13 @@ Following inputs can be used as `step.with` keys | Name | Type | Description | |--------------------|---------|-----------------------------------| -| `version` | String | [Buildx](https://github.com/docker/buildx) version. (e.g. `v0.3.0`, `latest`) | +| `version` | String | [Buildx](https://github.com/docker/buildx) version. (eg. `v0.3.0`, `latest`) | | `driver` | String | Sets the [builder driver](https://github.com/docker/buildx#--driver-driver) to be used (default `docker-container`) | -| `driver-opts` | CSV | List of additional [driver-specific options](https://github.com/docker/buildx#--driver-opt-options) | +| `driver-opts` | CSV | List of additional [driver-specific options](https://github.com/docker/buildx#--driver-opt-options) (eg. `image=moby/buildkit:master`) | | `buildkitd-flags` | String | [Flags for buildkitd](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md) daemon (since [buildx v0.3.0](https://github.com/docker/buildx/releases/tag/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`) | +| `endpoint` | String | [Optional address for docker socket](https://github.com/docker/buildx#buildx-create-options-contextendpoint) or context from `docker context ls` | > `CSV` type must be a newline-delimited string > ```yaml diff --git a/action.yml b/action.yml index c50254a..f53d07a 100644 --- a/action.yml +++ b/action.yml @@ -8,14 +8,14 @@ branding: inputs: version: - description: 'Buildx version. e.g. v0.3.0' + description: 'Buildx version. (eg. v0.3.0)' required: false driver: description: 'Sets the builder driver to be used' default: 'docker-container' required: false driver-opts: - description: 'List of additional driver-specific options. Eg. image=moby/buildkit:master' + description: 'List of additional driver-specific options. (eg. image=moby/buildkit:master)' required: false buildkitd-flags: description: 'Flags for buildkitd daemon' @@ -29,6 +29,9 @@ inputs: description: 'Switch to this builder instance' default: 'true' required: false + endpoint: + description: 'Optional address for docker socket or context from `docker context ls`' + required: false outputs: name: diff --git a/dist/index.js b/dist/index.js index 61c4603..44c944f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -534,6 +534,9 @@ function run() { if (inputs.use) { createArgs.push('--use'); } + if (inputs.endpoint) { + createArgs.push(inputs.endpoint); + } yield exec.exec('docker', createArgs); core.info('🏃 Booting builder...'); yield exec.exec('docker', ['buildx', 'inspect', '--bootstrap']); @@ -6577,7 +6580,8 @@ function getInputs() { buildkitdFlags: core.getInput('buildkitd-flags') || '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host', install: /true/i.test(core.getInput('install')), - use: /true/i.test(core.getInput('use')) + use: /true/i.test(core.getInput('use')), + endpoint: core.getInput('endpoint') }; }); } diff --git a/src/context.ts b/src/context.ts index acc57e2..4a39951 100644 --- a/src/context.ts +++ b/src/context.ts @@ -11,6 +11,7 @@ export interface Inputs { buildkitdFlags: string; install: boolean; use: boolean; + endpoint: string; } export async function getInputs(): Promise { @@ -22,7 +23,8 @@ export async function getInputs(): Promise { core.getInput('buildkitd-flags') || '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host', install: /true/i.test(core.getInput('install')), - use: /true/i.test(core.getInput('use')) + use: /true/i.test(core.getInput('use')), + endpoint: core.getInput('endpoint') }; } diff --git a/src/main.ts b/src/main.ts index 608d0f9..c9cc0cc 100644 --- a/src/main.ts +++ b/src/main.ts @@ -42,6 +42,9 @@ async function run(): Promise { if (inputs.use) { createArgs.push('--use'); } + if (inputs.endpoint) { + createArgs.push(inputs.endpoint); + } await exec.exec('docker', createArgs); core.info('🏃 Booting builder...');