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.
npm install -g dockery
# or
yarn global add dockery
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.
dockery --hash
This will read the hash of the last git commit and use it as the tag name.
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.
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
If you have any questions, do not hesitate and raise an issue on github.com/lumio/dockery.
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.