Werf (previously known as Dapp) is made to implement and support Continuous Integration and Continuous Delivery (CI/CD).
It helps DevOps engineers generate and deploy images by linking together:
- application code (with Git support),
- infrastructure code (with Ansible or shell scripts), and
- platform as a service (Kubernetes).
Werf simplifies development of build scripts, reduces commit build time and automates deployment. It is designed to make engineer's work fast end efficient.
- Complete application lifecycle management: build and cleanup images, deploy application into Kubernetes.
- Incremental rebuilds for git: reducing average build time for a sequence of git commits.
- Building images with Ansible or Shell scripts.
- Building multiple images from one description.
- Sharing a common cache between builds.
- Reducing image size by detaching source data and build tools.
- Running distributed builds with common registry.
- Advanced tools to debug built images.
- Tools for cleaning both local and remote Docker registry caches.
- Deploying to Kubernetes via helm, the Kubernetes package manager.
Minimal required version is 1.9.0.
To optionally use Git Submodules minimal version is 2.14.0.
Helm Kubernetes package manager. Helm is optional and only needed for deploy-related commands.
Minimal version is v2.7.0-rc1.
Way 1 (recommended): using Multiwerf
Multiwerf is a version manager for Werf, which:
- downloads werf binary builds;
- manages multiple versions of binaries installed on a single host, that can be used at the same time;
- automatically updates werf binary (can be disabled).
mkdir ~/bin cd ~/bin curl -L https://raw.githubusercontent.com/flant/multiwerf/master/install.sh | bash source <(multiwerf use 1.0 alpha)
Way 2: download binary
The latest release can be reached via this page.
curl -L https://dl.bintray.com/flant/werf/v1.0.0-alpha.13/werf-darwin-amd64-v1.0.0-alpha.13 -o /tmp/werf chmod +x /tmp/werf sudo mv /tmp/werf /usr/local/bin/werf
curl -L https://dl.bintray.com/flant/werf/v1.0.0-alpha.13/werf-linux-amd64-v1.0.0-alpha.13 -o /tmp/werf chmod +x /tmp/werf sudo mv /tmp/werf /usr/local/bin/werf
Way 3: from source
go get github.com/flant/werf/cmd/werf