5 ms·
This question was asked on https://github.com/docker-library/golang/issues/11#issuecomment-56748915 https://github.com/docker-library/golang/issues/11#issuecomm
by tianon 12y ago
This question was asked on https://github.com/docker-library/golang/issues/11#issuecomment-56748915 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.
- shykes 12y agoNote 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.
- prudhvis 12y agoChanging 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?.
- deleted 12y ago[deleted]
- IanCal 12y agoIf you don't want things to get broken further down the line, you should use tags. It's the same with any dependency.
- voltagex_ 12y agoTaking that a step further - why not a busybox image to get even smaller?
- 0x006A 12y agoHow 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
- deleted 12y ago[deleted]
- zimbatm 12y agoIt's possible to install another package manager like opkg. See https://github.com/progrium/busybox https://github.com/progrium/busybox
- 0x006A 12y agoright, 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/packages/ http://downloads.openwrt.org/snapshots/trunk/x86_64/packages...
- zimbatm 12y agoAnother 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.
- voltagex_ 12y agoYeah, that looks good - I'm in Australia so anything that reduces the amount I need to download is excellent.