@auto-it/docker
v11.3.0
Published
Facilitates publishing built images to a Docker Registry.
Downloads
997
Maintainers
Readme
Docker Plugin
This plugin automates tagging and publishing images to a docker registry.
Prerequisites
To publish to a docker registry, you'll first need to authenticate with the target registry. For example, the Docker Login Action for GitHub, or the withRegistry
helper in Jenkins.
Installation
This plugin is not included with the auto
CLI installed via NPM. To install:
npm i --save-dev @auto-it/docker
# or
yarn add -D @auto-it/docker
Usage
IMPORTANT: You must first must build the desired image to publish.
The following options are available for this plugin:
|option|required|default|environment variable|description|
|-|-|-|-|-|
| image
| X | | IMAGE
| The image ID, digest, or tag of the locally available image to tag and publish (must be built before this plugin is run) |
| registry
| X | | REGISTRY
| Docker registry to publish to |
| tagLatest
| | false
| TAG_LATEST
| Tag latest release with latest
tag |
| tagPullRequestAliases
| | false
| TAG_PULL_REQUEST_ALIASES
| Tag pull requests with pr-<number>
tag |
| tagPrereleaseAliases
| | false
| TAG_PRERELEASE_ALIASES
| Tag prerelease branches
| prereleaseAliasMappings
| | {}
| | Tag prerelease branches with different names (e.g. {"develop": "next"}
) |
Example 1: Tag releases only
{
"plugins": [
["docker", { "registry": "ghcr.io/my/app", "image": "someLocalImage:myLocalTag" }]
// other plugins
]
}
This will publish releases from the local docker image someLocalImage:myLocalTag
to: - ghcr.io/my/app:<version>
Example 2: Tag latest releases
{
"plugins": [
["docker", { "registry": "ghcr.io/my/app", "image": "someLocalImage:myLocalTag", "tagLatest": true }]
// other plugins
]
}
This will publish releases from the local docker image someLocalImage:myLocalTag
to: - ghcr.io/my/app:<version>
ghcr.io/my/app:latest
Example 3: Tag Prereleases (with Custom Tags)
{
"prereleaseBranches": ["develop", "someOtherPrereleaseBranch"],
"plugins": [
["docker", { "registry": "ghcr.io/my/app", "image": "someLocalImage:myLocalTag", "tagPrereleaseAliases": true, "prereleaseAliasMapping": { "develop": "next" } }]
// other plugins
]
}
For pushes to develop
branch this will create the following tags:
ghcr.io/my/app:<prereleaseVersion>
ghcr.io/my/app:next
For pushes to someOtherReleaseBranch
this will create the following tags:
ghcr.io/my/app:<prereleaseVersion>
ghcr.io/my/app:someOtherReleaseBranch
Example 4: Tag Pull Requests
{
"plugins": [
["docker", { "registry": "ghcr.io/my/app", "image": "someLocalImage:myLocalTag", "tagPullRequestAliases": true }]
// other plugins
]
}
If this is run against a pull request the following tags will be created against someLocalImage:myLocalTag
:
ghcr.io/my/app:<canaryVersion>
ghcr.io/my/app:pr-<prNumber>