A simple CLI to build and publish a repository with an Dockerfile based on GitHub repository release tags.


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
015Jun 16, 2021Aug 28, 2017Minified + gzip package size for @immowelt/docker-publish in KB



Powered by Immowelt Greenkeeper badge Build Status Dependency Status devDependency Status

A simple CLI to build and publish a repository with an Dockerfile based on semver versions or GitHub repository release tags.


npm i -D @immowelt/docker-publish

Usage and examples

  Usage: docker-publish [options]


    --tags   <List<string> | url> The Github tags API URL or the raw list of tags to iterate over.
    --arg    <string>             The build-arg key to use when forwarding the current iterated tag.
    --image  <string>             The image name for the docker images to create.
    --latest <string>             An optional 'latest' tag to specify, defaults to 'latest'
    --strip  <string>             An optional string which will be removed from the docker tags to generate. E.g. useful if your repo is named 'foo/java-alpine' and you don't want to repeat the '-alpine' keyword in tags.

Example usage

docker-publish --tags=8.2.0-alpine,8.4.0-alpine --image=immowelt/node --arg=NODE_VERSION --latest

This command would build and push a docker image with the Dockerfile located in the processes cwd for each valid semver release tag of the official NodeJS repository. During the build we forward an --build-arg, e.g. NODE_VERSION with the current iterated version. After the build is done the image gets tagged e.g. immowelt/node:8.3.0.

After the iteration of releases is done, we also re-tag the latest tag of docker to make sure that the latest tag does in fact point to the last released version.


Please make sure that you adhere to our code style, you can validate your changes / PR by executing npm run lint. Visit the eslint-config-immowelt-react package for more information.


See the LICENSE file at the root of the repository.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.