Auto-trigger docker build for kubernetes helm when new release is announced
The latest docker tag is the latest release version (https://github.com/helm/helm/releases/latest)
Please avoid to use latest
tag for any production deployment. Tag with right version is the proper way, such as alpine/helm:3.1.1
https://github.com/alpine-docker/helm
https://travis-ci.org/alpine-docker/helm
https://hub.docker.com/r/alpine/helm/tags/
# mount local folders in container.
docker run -ti --rm -v $(pwd):/apps -w /apps \
-v ~/.kube:/root/.kube -v ~/.helm:/root/.helm -v ~/.config/helm:/root/.config/helm \
-v ~/.cache/helm:/root/.cache/helm \
alpine/helm
# Run helm with special version. The tag is helm's version
docker run -ti --rm -v $(pwd):/apps -w /apps \
-v ~/.kube:/root/.kube -v ~/.helm:/root/.helm -v ~/.config/helm:/root/.config/helm \
-v ~/.cache/helm:/root/.cache/helm \
alpine/helm:3.1.1
# run container as command
alias helm="docker run -ti --rm -v $(pwd):/apps -w /apps \
-v ~/.kube:/root/.kube -v ~/.helm:/root/.helm -v ~/.config/helm:/root/.config/helm \
-v ~/.cache/helm:/root/.cache/helm \
alpine/helm"
helm --help
# example in ~/.bash_profile
alias helm='docker run -e KUBECONFIG="/root/.kube/config:/root/.kube/some-other-context.yaml" -ti --rm -v $(pwd):/apps -w /apps \
-v ~/.kube:/root/.kube -v ~/.helm:/root/.helm -v ~/.config/helm:/root/.config/helm \
-v ~/.cache/helm:/root/.cache/helm \
alpine/helm'
Mostly it is used during CI/CD (continuous integration and continuous delivery) or as part of an automated build/deployment
- Enable Travis CI cronjob on this repo to run build daily on master branch
- Check if there are new tags/releases announced via Github REST API
- Match the exist docker image tags via Hub.docker.io REST API
- If not matched, build the image with release version and push to https://hub.docker.com/
- Get the latest version from https://github.com/helm/helm/releases/latest, pull the image with that version, tag as
alpine/helm:latest
and push to hub.docker.com