Docker Setup Docker - GitHub Marketplace (original) (raw)

GitHub release GitHub marketplace CI workflow Test workflow Codecov

About

GitHub Action to set up (download and install) Docker CE. Works on Linux, macOS and Windows.

Note

This action is useful if you want to pin against a specific Docker version or set up a custom daemon configuration or if Docker is not available on your runner. If you're using GitHub-hosted runnerson Linux or Windows, Docker is already up and running, so it might not be necessary to use this action.

Screenshot


Usage

Quick start

name: ci

on: push:

jobs: docker: runs-on: ubuntu-latest steps: - name: Set up Docker uses: docker/setup-docker-action@v4

Daemon configuration

You can configure the Docker daemonusing the daemon-config input. In the following example, we configure the Docker daemon to enable debug and the containerd image storefeature:

name: ci

on: push:

jobs: docker: runs-on: ubuntu-latest steps: - name: Set up Docker uses: docker/setup-docker-action@v4 with: daemon-config: | { "debug": true, "features": { "containerd-snapshotter": true } }

Define custom limactl start arguments (macOS)

You can define custom limactl start argumentsusing the LIMA_START_ARGS environment variable to customize the VM:

name: ci

on: push:

jobs: docker: runs-on: macos-latest steps: - name: Set up Docker uses: docker/setup-docker-action@v4 env: LIMA_START_ARGS: --cpus 4 --memory 8

Customizing

inputs

The following inputs can be used as step.with keys

Name Type Default Description
version String latest Docker version to use. See inputs.version.
channel String stable Docker CE channel (stable or test). Only applicable to type=archive
daemon-config String Docker daemon JSON configuration
tcp-port Number TCP port to expose the Docker API locally
context String setup-docker-action Docker context name.
set-host Bool false Set DOCKER_HOST environment variable to docker socket path.
rootless Bool false Start daemon in rootless mode

inputs.version

By default, the latest stable version of Docker is fetched from download.docker.com.

You can specify a specific version number (e.g. v27.4.0). Which is a shorthand for the full comma separated value:

type=archive,channel=stable,version=v27.4.0

You can also use this full csv format instead.

Currently supported source types are:

type=archive

Key Default Description
type archive The source type of the Docker binaries. Possible values are archive and image.
channel stable The download.docker.com channel (stable or test).
version latest The Docker version to use.

Examples:

last stable released version

version: latest version: type=archive # same as above version: version=latest # same as above version: type=archive,version=latest # same as above

v27.3.0-rc.1 from test channel

version: type=archive,version=27.3.0-rc.1,channel=test

type=image

Other possible source type is image which will pull the Docker binaries from the moby/moby-bin anddockereng/cli-bin Docker Hub repositories. The advantage of using this source type is that these images are built by the Moby and Docker CI pipelines for each branch and PR, so you can use the tag input to install a specific version or branch (e.g. master).

Key Default Description
tag latest The image tag to use.

See https://hub.docker.com/r/moby/moby-bin/tags and https://hub.docker.com/r/dockereng/cli-bin/tags for available tags.

Examples:

install last stable released version from bin images

version: type=image version: type=image,tag=latest # same as above

a cutting-edge version from the master branch

version: type=image,tag=master

install v27.4.0 from bin images

version: type=image,tag=27.4.0

outputs

The following outputs are available

Name Type Description
sock String Docker socket path
tcp String Docker TCP address if tcp-port is set

Contributing

Want to contribute? Awesome! You can find information about contributing to this project in the CONTRIBUTING.md

License

Apache-2.0. See LICENSE for more details.