NAME

Dist::Zilla::Plugin::Docker::API - Build and publish Docker images as Dist::Zilla release artifacts

VERSION

version 0.103

SYNOPSIS

[Docker::API]
image = ghcr.io/example/my-app

tag = latest
tag = %V
tag = %v

dockerfile = Dockerfile

build_load   = 1
release_push = 1

Or via the @Author::GETTY bundle:

[@Author::GETTY::Docker / runtime]
image = ghcr.io/example/my-app
tags  = latest %V %v

DESCRIPTION

This plugin builds and publishes Docker images as release artifacts derived from the Dist::Zilla-built distribution.

BEHAVIOR

| Dzil command | Docker behavior | |---|---| | dzil build | Build image, apply every tag, load into daemon (if build_load=1), no push | | dzil release | Re-tag the built image with every tag, push (if release_push=1), load (if release_load=1) |

The same tag list is used in both phases — dzil build produces local tags for verification, dzil release re-applies them (against the already-built image) and pushes if configured.

CONFIGURATION

image - Full image repository (required). Example: ghcr.io/user/my-app
tag - Tags applied to the image (can be repeated, template-enabled). Default: latest, %V, and %v (e.g. latest, 0, 0.402). Applied identically in both build and release. Note: setting tag explicitly replaces the default list, it does not append to it.
dockerfile - Dockerfile name (default: Dockerfile)
build_load - Load built image into local Docker daemon (default: true)
release_push - Push to registry during release (default: true)
release_load - Load released image locally (default: false)
fail_if_tag_exists - Error if tag already exists on remote
skip_latest_on_trial - Skip latest tag for trial releases
build_arg - Build arguments (can be repeated, template-enabled)
label - OCI labels (can be repeated, template-enabled)
platform - Target platform (can be repeated)

DEPRECATED

The following names are still accepted but emit a warning and will be removed in a future release:

build_tag, release_tag

Replaced by the single tag attribute. When either is given, the values are merged (build_tag first, release_tag second) into tag and a deprecation warning is emitted. If tag is also set explicitly, it wins and the legacy values are ignored.

repository - Use image instead.
phase - No longer needed; build and release phases are implicit.
push - Use release_push instead.
load - Use build_load instead.

SEE ALSO

Dist::Zilla::Plugin::Docker::API::TagTemplate, Dist::Zilla::Plugin::Docker::API::Client, Dist::Zilla::Plugin::Docker::API::Result

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-dist-zilla-plugin-docker-api/issues.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <getty@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.