Skip to content

Latest commit

 

History

History
 
 

docker

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

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>