eclass-docker-fork

1.3.1 • Public • Published

eclass-docker-fork

npm Node.js CI downloads dependencies devDependency Status Coverage Status Maintainability semantic-release

semantic-release plugin to tag and push docker images

Step Description
verifyConditions Verify the presence of the baseImageName, and registries options in plugin config.
prepare Tag docker images.
publish Push docker images.

Install

npm i -D eclass-docker-fork

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-docker-fork"
  ]
}

Configuration

Options

Config

Variable Description
baseImageName Name of the previously constructed docker image. Required.
registries Array of Registry objects. Required. Example: {"user": "DOCKER_USER", "password": "DOCKER_PASSWORD", "url": "docker.pkg.github.com", "imageName": "docker.pkg.github.com/myuser/myrepo/myapp"}
additionalTags Array of additional tags to push. Optional. Example: ["beta", "next"]

Registry

Variable Description
url Url of the docker registry. Required. Example: "docker.pkg.github.com"
imageName Name of the docker image. Required. Example: "docker.pkg.github.com/myuser/myrepo/myapp"
user Name of the environment variable used as user name for login to the docker registry. Required. Example: "DOCKER_USER"
password Name of the environment variable used as password for login to the docker registry. Required. Example: "DOCKER_PASSWORD"
skipTags Array 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.

Variable Description
DOCKER_USER username for docker registry.
DOCKER_PASSWORD password for docker registry.

Examples

Push images to many docker registry

{
  "plugins": [
    "@semantic-release/changelog",
    "@semantic-release/npm",
    "@semantic-release/git",
    "@semantic-release/gitlab",
    [
      "eclass-docker-fork",
      {
        "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

Readme

Keywords

none

Package Sidebar

Install

npm i eclass-docker-fork

Weekly Downloads

55

Version

1.3.1

License

MIT

Unpacked Size

21 kB

Total Files

14

Last publish

Collaborators

  • vrtxf