magneticio / vamp-docker-images

Dockerfiles, compositions and related assets to setup Vamp with Docker
Apache License 2.0
21 stars 12 forks source link

Vamp Docker

This repo contains a number of Dockerfile files and bash scripts to help setting up Vamp in different situations.

Prerequisites

  1. Docker
  2. For building: Git, JDK 8, sbt, Leiningen, npm and Go

Images

Building

./build.sh

Usage of ./build.sh:

  -h  |--help       Help.
  -l  |--list       List all available and built images.
  -c  |--clean      Remove image(s).
  -m  |--make       Copy Docker file(s) to 'target/docker' directory.
  -b  |--build      Build image(s).
  -v=*|--version=*  Specifying Vamp version, e.g. -v=katana
  -i=*|--image=*    Specifying single image to be processed, e.g. `-i=marathon` otherwise all.

Note: depending on the Vamp image, the image dependency (Dockerfile FROM) won't be built automatically.

Example 1: building Vamp Quick Start

./build.sh -b -i=clique-base
./build.sh -b -i=clique-zookeeper
./build.sh -b -i=clique-zookeeper-marathon
./build.sh -b -i=quick-start

Example 2: building all tutorial images (DC/OS, Kubernetes and Rancher)

./build.sh -b -i=vamp
./build.sh -b -i=vamp-*

Background info

Katana is the latest (cutting edge) version, and is used by default as a version tag in the created Docker containers. When setting a specific version for the build, the build.sh script replaces all katana references and strings, including the ones in the Vamp artifact files (https://github.com/magneticio/vamp-artifacts) that define the Vamp Workflow Agent and Vamp Gateway Agent to be bootstrapped by Vamp.

Running

./run.sh

Usage: ./run.sh clique-*|quick-start [options]
  clique-etcd                Run etcd, Elasticsearch, Logstash, Kibana and Vamp Gateway Agent.
  clique-consul              Run Consul, Elasticsearch, Logstash, Kibana and Vamp Gateway Agent.
  clique-zookeeper           Run ZooKeeper, Elasticsearch, Logstash, Kibana and Vamp Gateway Agent.
  clique-zookeeper-marathon  Run all from 'clique-zookeeper' and Mesos, Marathon and Chronos.
  quick-start                Vamp quick start with Marathon.
  -h  |--help                Help.
  -v=*|--version=*           Specifying Vamp version, e.g. -v=katana

For instance to run Vamp quick start:

./run.sh quick-start

Exposed services depending on the image type:

NOTE: If you are using Docker Toolbox (Mac OS X or Windows), you should use docker-machine IP address instead of localhost, for instance to get the IP:

docker-machine ip default

Building images for release

To build all parts of Vamp for a new release of Vamp the following scripts will ensure appropriate tagging, building and pushing of docker images.

release-tag.sh - Tags all the repositories with the correct version. Need to be executed first. NB the optional push option pushes the tags to the Github repo's, so use with care!

Usage:
  release-tag.sh <version> [<push>]

Example:
  release-tag.sh 0.9.3
  release-tag.sh 0.9.3 push

release-build.sh - Perform the all the build steps for all the different repositories and projects. Need to be executed second.

Usage:
  release-build.sh <version>

Example:
  release-build.sh 0.9.3

release-push.sh - Pushes git tags and docker tags. Need to be executed third and last.

Usage:
  release-build.sh <version>

Example:
  release-build.sh 0.9.3

Building custom branches

To build custom branches you need to export VAMP_GIT_BRANCH environment variable containing the desired branch name. If given branch can't be found then master will be used which is the default value if nothing was specified.

If you work with forks you also need to export VAMP_GIT_ROOT environment variable containing the URL to GitHub account where the forked repositories can be found. If given repository can't be found at the specified URL then https://github.com/magneticio is used.