

Create Dockerfiles for easily buildable Docker containers - kstaken
http://crosbymichael.com/dockerfile-deep-dive.html

======
shykes
The idea behind Dockerfiles is to allow a source repository to be built and
packaged automatically, to the exact specification of the upstream developer,
regardless of his/her choice of development tools, distro or language.

Source repo comes in, container comes out. No other exchange of information
necessary. The only dependencies left are 1) the hardware architecture, 2) the
kernel and 3) the docker runtime (which is itself a 5MB static binary).

This makes things like this potentially possible:

    
    
        $ docker run git://github.com/antirez/redis
    

Voila, you are running Redis - built and configured to the specifications of
Salvatore himself.

------
mgurlitz
With containers, Docker gave us universal compatibility for running software.
A Dockerfile gives us universal compatibility for building and customizing our
software. Docker needs some time for the community to grow and the
documentation to mature, but once it does I think it will be difficult to
imagine ever not having Docker. Docker is largely "batteries not included,"
and slowly getting more useful with improvements like this, bind mounts [1],
and lots of users writing their own tutorials.

1:
[https://github.com/dotcloud/docker/pull/602](https://github.com/dotcloud/docker/pull/602)

------
spullara
I like Go and all but it seems like it is a poor choice for this project. Is
there a good rationale for why you would use go to build this?

~~~
shykes
We chose Go, even though we're traditionally a Python shop, for a few reasons:

1) It compiles to a static binary, which makes it very easy to drop docker
into an existing ops stack with very little hassle and without having to drag
a whole language-specific toolbox along. This has made it easier to adopt
docker for devops teams of ruby, python and java persuasion (among others).

2) the language itself is straight-forward, easy to learn and familiar to a
lot of people. It's basically a more accessible C. As a result it's been
easier to get people from different programming backgrounds to contribute.

This is in addition to, you know, the language being good :)

~~~
spullara
I do like 1) and I agree with your final point. However, all the error
handling code, etc is pretty brutal. I imagine someone will put a few
scripting languages on top of it at some point.

