We're exploring this too.
We use vagga for our containers, and have been using this config to build out Consul:
It works great, and the container size is 24Mb, 16.8M of which is the Consul bin.
An example dockerfile which does the same thing is:
Thinking through options...
Would it be possible to also provide Consul binary builds for musl /uclibc environment? Using vagga, it's particularly easy to setup a build environment to produce a binary.
Alternatively, could Consul's build process introduce dependency pinning, so when you checkout and build a particularly Consul tag - you always pull in the same dependencies that Consul tag was intended to be built against?