This plugin automates tagging and publishing images to a docker registry.
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.
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/dockerIMPORTANT: 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"}) |
{
"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>
{
"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
{
"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
{
"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>