Hypriot rocks

Well trying to get the Raspberry Pi back up and running and so many good things have happened in the last three years. Here’s the quickest way:

  1. Install latest hypriot from https://blog.hypriot.com/downloads. The latest is 0.7. The main thing I’m not sure of is how to update the latest version of hypriot. This version has all the Raspbian bits plus it knows how to speak docker! They have a very nice flash utility you can get with `git clone https://github.com/hypriot/flash` and you just point it with `flash –hostname rpi-0 https://blog.hypriot.com/downloads https://downloads.hypriot.com/hypriot-rpi-20160306-192317.img.zip` it works fine for rpi 1 and 2 but not for the new rpi 3
  2. Note that you can also build your own Hypriot which is really just raspbian with occidentalis for configuration of hostname and wifi plus the two packages below. You need to do this for rpi3 as Hypriot will not run. You should use raspbian lite for this. 
  3. Then make sure you have the latest versions of hypriot software with `sudo apt-get update && sudo apt get install hypriot-cluster-lab docker-hypriot docker-compose`
  4. To use hypriot in with docker-machine, change /etc/os-release from id=raspbian` to id =debian` so the standard docker-machine can use it with the generic driver. You can use a random Token, but much better is to use https://github.com/hypriot/cluster-lab so that with a single `cluster-lab start` you get consul running and can use port 8500 on any Raspberry pi to see what is running on the cluster.
  5. Also if you are using old Raspberry Pi 1, then you definitely want to modify /boot/config.txt to overclock to 1GHz as 700MHz is just on the edge of too slow. The new format of /boot/config.txt allows sections so you can have one config.txt that works for rpi1 and 2. 

In terms of usage what do you get?

  1. Docker at its latest version compiled for armhf in the hypriot repos
  2. Docker-compose the same way
  3. Consul so you can easily create swarms. If you then set DOCKER_HOST=rpi-0.local:2378 then all your docker commands get routed to the swarm. Then you can use constraints to run containers on different nodes.