Like all great plans, my plan to run Ubuntu on my Raspberry Pi’s has not survived first contact with reality.
Ubuntu Snappy Core
I’d thought about Ubuntu and there were two options on the Raspberry Pi download page: Mate and Snappy Core. Mate is a desktop installation and Snappy Core is…well it’s sort of the container friendly future. Ubuntu Snappy is lightweight and modular and updates are atomic and transactional and hence can be rolled back and the only framework snap [Snappy calls the modules ‘snaps’] is Docker. It is Docker because container workloads are mostly what Snappy was designed for.
So I click the link to download Snappy — because I don’t really want Mate because I don’t really want a desktop and because I really want containers — and because Snappy is not officially supported by Raspberrypi.org it takes me to the Ubuntu Snappy site [where I’d been already to read all about Snappy’s goodness]. I follow the instructions to put it on a micro-SD card; stick the card in a Pi; wire everything up and up comes the video test and…then there’s no console or presence on the network.
So maybe I did it wrong so I rebuild the card again (that means firing up gparted to make sure I’ve got the formatting right before I reinstall). I stick the new copy in a Pi, wire it up, etc. and same result. Clearly time for more research.
Turns out I am in the uncanny valley of Microcontrollers. The Raspberry Pi 3 came out in March of 2016 and Ubuntu 16.04 LTS was already just about finalized, so support for the Pi 3 was not included in the release…and the images I’d been loading were for the Pi 2 and there’s enough of a difference between a Pi 2 and Pi 3 that the Ubuntu needs tweeking to run on the Pi 3.
Maybe the Pi 3 will be supported in 16.10 and that’s just around the corner
Raspbian it Is Then
Since that looked like it for now, I loaded up Raspbian Jessie-Lite and started fooling around with it…I’ll skip describing making the card because I’m getting proficient enough that there was no drama. I just made the card, wired things up and it all worked. Exactly what one would expect when we’re just one year away from the year of the Linux desktop. The first thing I tried was good old ~sudo apt install docker~ and it installed. But it turns out to be version 1.5 rather than the latest 1.12. That was disappointing enough that I didn’t even want to know how old 1.5 is.
Installing Docker on Raspbian Jessie
According to this blog and as of right now, that seems to be correct.
My tl;dr instructions for installing Docker 1.12 on the Raspberry Pi 3 are:
ssh pi@<name of sd card> sudo nano /boot/config.txt # Edit for Docker gpu_mem=16 sudo curl -sSL get.docker.com | sh sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker pi
The story about Snappy wasn’t quite done
One of the apps I am interested in containerizing is Rocket Chat and so I was on their Github page about Pi’s https://github.com/RocketChat/Rocket.Chat.RaspberryPi and it mentioned that there were Snappy Core images at http://cdimage.ubuntu.com/ubuntu-snappy/16.04/current/ and so I downloaded a copy, imaged a microSD, wired it all up and got four Raspberries on the screen but no terminal and no connection to the network. Maybe I did something wrong…like forgot to type
sync after copying the image so I make the image again and just to prove my insanity get exactly the same results. That’s it, I’ve Lucy, I’m not going to kick your damn football.
Then Charlie Brown decides to check out the Snappy mailing list archive (before I hit IRC) and low and behold this email thread tells me that I’ve been using the special development version and because I want a non-serial terminal I should use the daily build from here.
OK Lucy, hold the ball for me.