A WoodpeckerCI plugin for buildctl to build container images using a remote builtkitd instance.
10K+
A WoodpeckerCI plugin for buildctl to build container images using a remote buildkit host.
Also usable with Gitlab, Github or locally, see examples for usage.
WoodpeckerCI:
steps:
buildctl:
depends_on: []
image: kokuwaio/buildctl:v0.29.0
settings:
name:
- registry.example.org/foo:latest
- registry.example.org/foo:0.0.1
annotation:
org.opencontainers.image.title: My Image
org.opencontainers.image.description: A description.
build-args:
NPM_CONFIG_REGISTRY: ${NPM_CONFIG_REGISTRY} # reused from ci env
FOO: bar
platform: [linux/amd64, linux/arm64]
auth:
registry.example.org:
username: {from_secret: my_username}
password: {from_secret: my_password}
https://index.docker.io/v1/":
username: {from_secret: docker_io_username}
password: {from_secret: docker_io_password}
Gitlab: (using script is needed because of https://gitlab.com/gitlab-org/gitlab/-/issues/19717)
buildctl:
needs: []
stage: lint
image:
name: kokuwaio/buildctl:v0.29.0
entrypoint: [""]
script: /usr/local/bin/entrypoint.sh
variables:
PLUGIN_ADDR: tcp://0.8.1.5:1234
PLUGIN_NAME: registry.example.org/foo:latest,registry.example.org/foo:0.0.1
PLUGIN_PLATFORM: linux/amd64,linux/arm64
PLUGIN_AUTH: '{"registry.example.org":{"username":"my-user","password":"changeMe"}}'
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
CLI (will reuse docker credentials of current user):
PLUGIN_ADDR=tcp://0.8.1.5:1234
PLUGIN_NAME=registry.example.org/foo:latest,registry.example.org/foo:0.0.1
PLUGIN_PLATFORM=linux/amd64,linux/arm64
docker run --rm --user=$(id -u) --volume=$HOME:$HOME:ro --workdir=$PWD --env=PLUGIN_ADDR --env=PLUGIN_NAME --env=PLUGIN_PLATFORM kokuwaio/buildctl
| Settings Name | Environment | Default | Description |
|---|---|---|---|
addr | PLUGIN_ADDR | $BUILDKIT_HOST | Buildkit host to use. |
frontend | PLUGIN_FRONTEND | dockerfile.v0 | Only dockerfile frontend supported right now |
context | PLUGIN_CONTEXT | $PWD | Context directory to use for build |
dockerfile | PLUGIN_DOCKERFILE | Dockerfile | Dockerfile to use. |
target | PLUGIN_TARGET | none | Dockerfile target |
build-args | PLUGIN_BUILD_ARGS | none | Build args to pass to build |
platform | PLUGIN_PLATFORM | none | Target platform for container image. |
reproducible | PLUGIN_REPRODUCIBLE | true | Build with reproducible settings. |
source-date-epoch | PLUGIN_SOURCE_DATE_EPOCH | 0 | Timestamp to use for reproducible builds. |
name | PLUGIN_NAME | none | Images names where to push the image. |
annotation | PLUGIN_ANNOTATION | none | Annotations (also known as labels) to add to image |
push | PLUGIN_PUSH | true | Push images if output names are set. |
auth | PLUGIN_AUTH | none | Auth for private registries |
env-file | PLUGIN_ENV_FILE | none | Source environment values from given file |
| Image | Comment | amd64 | arm64 |
|---|---|---|---|
| kokuwaio/buildctl | Woodpecker plugin | ||
| moby/buildkit | not a Woodpecker plugin | ||
| nordseth/buildctl | not a Woodpecker plugin | ||
| shopstic/buildctl | not a Woodpecker plugin, outdated | ||
| agisoft/buildctl | not a Woodpecker plugin, outdated | ||
| tikivn/buildctl | not a Woodpecker plugin, outdated |
Content type
Image
Digest
sha256:b81fe08cc…
Size
23.4 MB
Last updated
3 days ago
docker pull kokuwaio/buildctl