Quantcast
Channel: Since when does Ryan McKern have opinions? » technical
Viewing all articles
Browse latest Browse all 14

Yak Coiffure: Towards a better CentOS 7 Docker RPM

$
0
0

Packages? Let me cut right to the point: The Docker RPM provided by CentOS 'Extras' repository is old. How old? Version 0.11.1 old. While the code was only tagged 0.11.1 on May 7 2014, there have been 8 releases since then.

After seeing that a friend of mine had worked up a rough go at a FPM recipe for a current version of Docker, I said "we can do this better."

Sidebar: I love FPM but…

I do. I really do. It's a super handy way to take something, anything, and shove it into a distributable native package. But I'm captain of the local Pedant Squad and FPM is as easy to abuse as it is to use. So… one thing led to another, Bob's your uncle, and oh hey, I packaged up Docker 1.2.0 as a nice, tidy RPM with a nice, tidy SRPM, and a corresponding nice, tidy Spec file.

Wait… what's wrong with the Docker RPM in EPEL?

Simply put, it's old. Docker 0.11.1 is lacking a lot of features that you'd expect Docker to have -- like DockerHub. And the spec file builds Docker from source, which is exactly what every upstream or EPEL RPM does (and that's generally OK).

But Docker is a little bit different because it's written in Go, and typically distributed as a single static monolithic executable (one of the real strengths of Go binaries, I think). And because Go has all sorts of weird and wild dependency resolution quirks, there's a real chance that the resultant binary you're getting can be markedly different than the binary that the upstream authors intended. Also, 'latest' is probably the version of Docker that you're going to want to use because if you're using Docker then you probably like to live a little dangerously.

Putin is an animal lover

One More Thing

But! We don't just shit unsigned packages into the void like wild animals. No! We create repositories! We make Yum repo configurations! We create new GPG keys!

So, I give you Orange Fort Packages for EL7. Installing the release package gets you the repo and the GPG key, but you can just import the key into rpm's GPG keyring if you're so inclined:

rpm --import https://secure.orangefort.com/packages/RPM-GPG-KEY-orangefort

Are you tracking this work anywhere?

Sure am! Here's a GitHub repo for the Docker RPM work (note that it does not include the docker binary itself). All of my work is under the Apache License, version 2.0 and I encourage you to review & reuse it any way you see fit.


Viewing all articles
Browse latest Browse all 14

Latest Images

Trending Articles





Latest Images