Hacker News new | past | comments | ask | show | jobs | submit login

This question was asked on https://github.com/docker-library/golang/issues/11#issuecomm... too, but the main reason is that the "debian" base images are tightly controlled and kept really minimal, so it's easy to make the new images as minimal as they can be too. The Ubuntu images are also great, but they include more stuff as part of keeping a consistent experience, so they don't have the same focus on minimalism that the Debian images can.



Note that the image maintainers (starting with tianon above) reserve the right to change the base distro they use for the images. So they can truly use the best tool for the job, now and in the future.


Changing the distro underneath would break all other Dockerfiles that assume they are running on a certain distro. How do we have to deal with cases when the distro is switched from debian to centos for example?.


If you don't want things to get broken further down the line, you should use tags. It's the same with any dependency.


Taking that a step further - why not a busybox image to get even smaller?


How would you install the build dependencies with busybox? Go requires some packages to build, from the Dockerfile:

apt-get install -y ca-certificates curl gcc libc6-dev bzr git mercurial


It's possible to install another package manager like opkg. See https://github.com/progrium/busybox


right, that would be an option, if opkg had packages for python mercurial or bzr. (those are needed for go get to work). Don't see those in http://downloads.openwrt.org/snapshots/trunk/x86_64/packages...


Another solution is to build your go executable in a different container and import it into a busybox container. That changes the layering from:

    debian
    add go, bzr, mercurial, python, ...
    build executable
to:

    busybox
    executable
That reduces the amount of data that needs to be downloaded on new boxes by a factor of ten or so.


Yeah, that looks good - I'm in Australia so anything that reduces the amount I need to download is excellent.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: