export digitalocean_token=***********
export driver_ops="--driver=digitalocean \
--digitalocean-region=fra1 \
--digitalocean-access-token=$digitalocean_token \
--digitalocean-size=1gb"
docker-machine create $driver_ops demo-infra
eval $(docker-machine env demo-infra)
cd build-ship-run
# build
docker build -t angeldimitrov/build-ship-run .
# ship
docker push angeldimitrov/build-ship-run
# run
docker run angeldimitrov/build-ship-run
# install consul on the stand-alone node
docker-compose -f docker-compose-consul.yml up -d
# create the swarm with 3 nodes
docker-machine create $driver_ops \
--swarm \
--swarm-master \
--swarm-discovery="consul://$(docker-machine ip demo-infra):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip demo-infra):8500" \
--engine-opt="cluster-advertise=eth0:2376" \
demo-swarm-node-01
docker-machine create $driver_ops \
--swarm \
--swarm-master \
--swarm-discovery="consul://$(docker-machine ip demo-infra):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip demo-infra):8500" \
--engine-opt="cluster-advertise=eth0:2376" \
demo-swarm-node-02
docker-machine create $driver_ops \
--swarm \
--swarm-master \
--swarm-discovery="consul://$(docker-machine ip demo-infra):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip demo-infra):8500" \
--engine-opt="cluster-advertise=eth0:2376" \
demo-swarm-node-03
# add metrics aggregation
cd swarm-compose/monitoring
docker-compose up -d
# scale cadvisor over all the nodes
docker-compose scale cadvisor=3
# add logging aggregation
cd swarm-compose/logging
docker-compose up -d
docker-compose scale logspout=3