Skip to content

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

License

Notifications You must be signed in to change notification settings

ImmoweltGroup/docker-publish

Repository files navigation

@immowelt/docker-publish

Powered by Immowelt Build Status Dependency Status devDependency Status Renovate enabled semantic-release

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

Installing

npm i -D @immowelt/docker-publish

Usage and examples

  Usage: docker-publish [options]

  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.

Contributing

See the CONTRIBUTING.md file at the root of the repository.

Licensing

See the LICENSE file at the root of the repository.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published