drone-docker-buildx/_index.md
Robert Kaussow fb9d837047 commit fef64f2b79
Author: Robert Kaussow <mail@thegeeklab.de>
Date:   Mon Apr 25 12:51:42 2022 +0200

    ci: refactor build tools and ci setup (#90)
2022-04-25 10:53:30 +00:00

4.5 KiB

title
drone-docker-buildx

Build Status Docker Hub Quay.io GitHub contributors Source: GitHub License: MIT

Drone plugin to build and publish multiarch Docker images with buildx.

{{< toc >}}

Versioning

The tags follow the major version of Docker, e.g. 20, the minor and patch part reflects the "version" of the plugin. A full example would be 20.12.5. Minor versions may introduce breaking changes, while patch versions may be considered non-breaking.

Build

Build the binary with the following command:

export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on

make build

Build the Docker image with the following command:

docker build --file docker/Dockerfile.amd64 --tag thegeeklab/drone-docker-buildx .

Usage

{{< hint warning >}} Note
Be aware that the this plugin requires privileged capabilities, otherwise the integrated Docker daemon is not able to start. {{< /hint >}}

docker run --rm \
  -e PLUGIN_TAG=latest \
  -e PLUGIN_REPO=octocat/hello-world \
  -e DRONE_COMMIT_SHA=00000000 \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  --privileged \
  thegeeklab/drone-docker-buildx --dry-run

Parameters

dry_run
disables docker push
drone_remote_url
sets the git remote url
mirror
sets a registry mirror to pull images
storage_driver
sets the docker daemon storage driver
storage_path
sets the docker daemon storage path (default /var/lib/docker)
bip
allows the docker daemon to bride ip address
mtu
sets docker daemon custom mtu setting
custom_dns
sets custom docker daemon dns server
custom_dns_search
sets custom docker daemon dns search domain
insecure
allows the docker daemon to use insecure registries
ipv6
enables docker daemon ipv6 support
experimental
enables docker daemon experimental mode
debug
enables verbose debug mode for the docker daemon
daemon_off
disables the startup of the docker daemon
buildkit_config
sets content of the docker buildkit json config
dockerfile
sets dockerfile to use for the image build (default ./Dockerfile)
context
sets the path of the build context to use (default ./)
tags
sets repository tags to use for the image; tags can also be loaded from a .tags file (default latest)
auto_tag
generates tag names automatically based on git branch and git tag
auto_tag_suffix
generates tag names with the given suffix
build_args
sets custom build arguments for the build
build_args_from_env
forwards environment variables as custom arguments to the build
quiet
enables suppression of the build output
target
sets the build target to use
cache_from
sets images to consider as cache sources
pull_image
enforces to pull base image at build time (default true)
compress
enables compression of the build context using gzip
output
sets the export action for the build result (format: path or type=TYPE[,KEY=VALUE])
repo
sets repository name for the image
registry
sets docker registry to authenticate with (default https://index.docker.io/v1/)
username
sets username to authenticates with
password
sets password to authenticates with
email
sets email address to authenticates with
config
sets content of the docker daemon json config
purge
enables cleanup of the docker environment at the end of a build (default true)
no_cache
disables the usage of cached intermediate containers
add_host
sets additional host:ip mapping
platforms
sets target platform for build