Skip to content

Instantly share code, notes, and snippets.

@tylerbuchea
Last active January 3, 2018 19:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tylerbuchea/9400664232383f18dc1905335fc5e0a1 to your computer and use it in GitHub Desktop.
Save tylerbuchea/9400664232383f18dc1905335fc5e0a1 to your computer and use it in GitHub Desktop.
Provision Docker Swarm on Digital Ocean
#!/bin/bash
set -e
# Must fill these values out for the script to work
droplet_name=""
digitalocean_access_token=""
# For more info check out:
# Dockers Machine Digital Ocean Driver: https://docs.docker.com/machine/drivers/digital-ocean/#options
# Docker Swarm: https://docs.docker.com/engine/swarm/
# Create droplet
docker-machine create \
--driver digitalocean \
--digitalocean-access-token $digitalocean_access_token \
--digitalocean-region sfo1 \
--digitalocean-size 1gb \
$droplet_name
# Add local SSH key to remote authorized_keys (optional)
cat ~/.ssh/id_rsa.pub | (docker-machine ssh $droplet_name "cat >> ~/.ssh/authorized_keys")
docker-machine ssh $droplet_name "cat ~/.ssh/authorized_keys"
# Initialize Swarm
ip=$(docker-machine ip $droplet_name)
docker-machine ssh $droplet_name "docker swarm init --advertise-addr $ip"
# Register Swarm to Docker Cloud
docker-machine ssh $droplet_name "docker run -i --rm -v /var/run/docker.sock:/var/run/docker.sock dockercloud/registration"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment