@eclass/semantic-release-docker
@eclass/semantic-release-docker
npm i @eclass/semantic-release-docker
@eclass/semantic-release-docker

@eclass/semantic-release-docker

semantic-release plugin to build and push docker images

by eclass

3.0.1 (see all)License:MITTypeScript:Not Found
npm i @eclass/semantic-release-docker
Readme

@eclass/semantic-release-docker

npm Node.js CI downloads Libraries.io dependency status for latest release Coverage Status Maintainability semantic-release

semantic-release plugin to tag and push docker images

StepDescription
verifyConditionsVerify the presence of the baseImageName, and registries options in plugin config.
prepareTag docker images.
publishPush docker images.

Install

npm i -D @eclass/semantic-release-docker

Usage

The plugin can be configured in the semantic-release configuration file:

{
  "plugins": [
    "@semantic-release/changelog",
    "@semantic-release/npm",
    "@semantic-release/git",
    "@semantic-release/gitlab",
    "@eclass/semantic-release-docker"
  ]
}

Configuration

Options

Config

VariableDescription
baseImageNameName of the previously constructed docker image. Required.
baseImageTagName of the previously constructed docker image tag. Optional. Default "latest"
registriesArray of Registry objects. Required. Example: {"user": "DOCKER_USER", "password": "DOCKER_PASSWORD", "url": "docker.pkg.github.com", "imageName": "docker.pkg.github.com/myuser/myrepo/myapp"}
additionalTagsArray of additional tags to push. Optional. Example: ["beta", "next"]

Registry

VariableDescription
urlUrl of the docker registry. Required. Example: "docker.pkg.github.com"
imageNameName of the docker image. Required. Example: "docker.pkg.github.com/myuser/myrepo/myapp"
userName of the environment variable used as user name for login to the docker registry. Required. Example: "DOCKER_USER"
passwordName of the environment variable used as password for login to the docker registry. Required. Example: "DOCKER_PASSWORD"
skipTagsArray of image tags that should not be pushed to the docker registry. Optional. Example: ["latest"]

Environment variables

Environment variables are variables. Depends of registries option.

VariableDescription
DOCKER_USERusername for docker registry.
DOCKER_PASSWORDpassword for docker registry.
DOCKER_BASE_IMAGE_TAGName of the previously constructed docker image tag. Optional. Default "latest".

Examples

Push images to many docker registry

{
  "plugins": [
    "@semantic-release/changelog",
    "@semantic-release/npm",
    "@semantic-release/git",
    "@semantic-release/gitlab",
    [
      "@eclass/semantic-release-docker",
      {
        "baseImageName": "myapp",
        "registries": [
          {
            "url": "registry.gitlab.com",
            "imageName": "registry.gitlab.com/mygroup/myapp",
            "user": "CI_REGISTRY_USER",
            "password": "CI_REGISTRY_PASSWORD"
          },
          {
            "url": "docker.io",
            "imageName": "docker.io/myuser/myapp",
            "user": "DOCKER_REGISTRY_USER",
            "password": "DOCKER_REGISTRY_PASSWORD"
          },
          {
            "url": "docker.pkg.github.com",
            "imageName": "docker.pkg.github.com/myuser/myrepo/myapp",
            "user": "GITHUB_USER",
            "password": "GITHUB_TOKEN"
          },
          {
            "url": "123456789012.dkr.ecr.us-east-1.amazonaws.com",
            "imageName": "123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp",
            "user": "AWS_DOCKER_USER",
            "password": "AWS_DOCKER_PASSWORD",
            "skipTags": ["latest"]
          }
        ],
        "additionalTags": ["next", "beta"]
      }
    ]
  ]
}
# .gitlab-ci.yml
release:
  image: node:alpine
  stage: release
  before_script:
    - docker build -t myapp .
  script:
    - npx semantic-release
  only:
    - master
# .travis.yml
language: node_js
cache:
  directories:
    - ~/.npm
node_js:
  - '12'
stages:
  - test
  - name: deploy
    if: branch = master
jobs:
  include:
    - stage: test
      script: npm t
    - stage: deploy
      before_script: docker build -t myapp .
      script: npx semantic-release

License

MIT

Downloads/wk

675

GitHub Stars

12

LAST COMMIT

3mos ago

MAINTAINERS

6

CONTRIBUTORS

7

OPEN ISSUES

2

OPEN PRs

10
VersionTagPublished
3.0.1
latest
3mos ago
No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate