I've volunteered to help maintain official CentOS Docker (https://www.docker.io/) images, and Karanbir suggested I email the list to "thrash out what we need at the infra end to achieve these images."

Currently, there are 'centos' images available in the top-level Docker registry namespace, but these are maintained by dotcloud.  I think we can do better. :)

As I see it, there are two ways we can do this:

1.  Use ami-creator (https://github.com/katzj/ami-creator), or something derived from it, to build Docker images from a kickstart file.  This is how CentOS AMIs are currently built.

Pros: Consistent with how AMIs are usually built; Kickstart is a known entity.

Cons: ami-creator won't actually work for us as-is; requires a full kickstart config.

2.  Use the mkimage-yum.sh script from Docker (https://github.com/dotcloud/docker/blob/master/contrib/mkimage-yum.sh), customized as necessary to produce a minimal base image.

Pros: Consistent with how Docker images are usually built; we can contribute changes to mkimage-yum.sh upstream to help other Yum-based distros; only requires a yum config.

Cons: Requires changing a shell script to make changes to the base image, not just a Kickstart.

Unfortunately, Docker Trusted Build (http://blog.docker.io/2013/11/introducing-trusted-builds/) can't be used for base images, AFAICT.

In either case, we'll need a git repo to hold the code and configs used to build the images.  If we follow the example of the official CentOS AMIs (http://wiki.centos.org/Cloud/AWS), it should be sufficient to provide a reasonably up-to-date base image ("latest" or "nightly" or similar), and a few recent dot releases.  Of course, once CentOS 7 is released we'll need to do that for both 6 and 7, but that shouldn't be difficult if we do this right.

Thoughts on process and/or infrastructure?

--
Chris St. Pierre