Docker on SmartOS, the harder way

SmartOS supports running Docker containers through Triton (SmartDataCenter). However I don’t have an entire datacenter at my disposal and the recommended specs for Triton are a bit more than the hardware I have available. I just want to run Docker containers on a single machine. A little bit of background: SmartOS supports running native Linux binaries in LX-branded zones through their Linux emulation. This is the base for regular LX-branded zones (behaves like a normal Solaris zone) and thus also allows for pulling images from the Docker Hub and running them unmodified.

Tracking Docker Hub tags

Several times during the past weeks I’ve found myself in need of a particular tag for a Docker image on the Docker Hub. Upstream released their software and I wanted to deploy the container with the latest version. Of course you can keep reloading the Tags page to see if something new has shown up. So I wrote a little tool called docker-tags. It keeps track of images you want to followand when asked reports either:

Golang cross-compiling Docker container

Creating cross-compiled binaries for Go projects is nothing new, and many projects build binaries for more than just linux/amd64, great. Some even build binaries for openbsd/amd64, even better. At the time of writing there’s no Go 1.5 port for OpenBSD yet, however there are some projects which requires Go >= 1.5. E.g. filebeat. So I made a simple Docker image which provides a cross-compiler for any supported Go target, but defaulting to openbsd/amd64: jasperla/go-cross.

Dockerlint

To flex my Coffeescript muscle I wrote a tool called Dockerlinta while ago. At the time there were already several projects with this obvious name, however none actually did The Right Thing. Either they were placeholders/vaporware or they had two checks. Instead of coming up with arbitrary Dos and Donts, Dockerlint follows two documents as set forth by Docker Inc.: Best practices for writing Dockerfiles Dockerfile reference I try to keep up with Docker’s insane release schedule (closing in to releasing 4 new major versions each week?

MPD to Sonos with Icecast

Before I switched to Sonos as my primary way of listening to audio I’ve used MPD for years. As such I collected a fair amount of audio files that Rdio, Tidal or Spotify claim I’m not allowed to stream in my region. And while Sonos is great, there’s not really a way to control it the way you can control an MPD server for which there are many clients and libraries.