Skip to content
/ dockery Public

Builds your package and creates a docker image

License

Notifications You must be signed in to change notification settings

lumio/dockery

Repository files navigation

dockery

CircleCI codecov Dependencies Vulnerabilities

A simple script that builds your package and creates a docker image in one sitting, preparing it for docker hub.

You can decide how to tag your image:

  • The default uses the version number of package.json.
  • --hash uses the hash of the latest git commit.
  • --tag sets the tag name manually (in combination with the given repo and package name)
  • --latest tags the image as being the latest version.

To push a built docker image to docker hub, you need to be logged in with docker login. You can also use dockery with a different registry by passing the --registry argument.

Install

npm install -g dockery
# or
yarn global add dockery

Usage

dockery -f

Combines the package.json's name and version number as a tag name, builds the package by running npm run build (or yarn run build) and then builds the docker image, using a Dockerfile.

The -f flag overwrites an existing image with the same tag name.

Note that in order to generate a valid image tag name the name needs to be scoped, e.g. begins with @dockery/. This is used as the docker hub repository. You could also set the repository name by passing the --repo argument.

Hashed image version

dockery --hash

This will read the hash of the last git commit and use it as the tag name.

Publish a manual tagged image

dockery --repo=test --package=test-pkg --tag=v1.0.0-alpha1 --push

This will create a docker image with the tag name test/test-pkg:v1.0.0-alpha1 and pushes it to the docker hub on a successful build.

Arguments

You can print all available arguments with dockery --help.

dockery [options]

 -d --directory=STRING
    Sets the work directory
 -f --force
    Overwrites an existing image
 --hash
    Use latest commit hash as tag name
 -h --help
    Show this help text
 -l --latest
    Tag as latest
 --package=ALPHANUMERIC
    Set the package name.
    Default is read from the name field in
    your package.json
 --push
    Push docker image to registry
 -q --quiet
    Disable most of the log outputs
 -r --registry=STRING
    Use a custom registry
 --repo=ALPHANUMERIC
    Set the docker repo.
    Default is read from the docker-repository field in
    your package.json
 --tag=ALPHANUMERIC
    Set manual tag name. Default is the package version number.
 -e --tag-prefix=STRING
    Prefix of the generated tag. E.g. "build-". Default is none

Support

If you have any questions, do not hesitate and raise an issue on github.com/lumio/dockery.

Tests & Development

This project uses yarn to resolve its dependencies and jest for unit tests.

yarn
yarn test

We are grateful for any help. Feel free to fork this project and adapt it.