$ docker -v Docker version , build Should instead say something like $ docker -v Docker version 0.6.1, build 5105263 This is because we need to pass in that information at build time -- the upstream scripts use something like VERSION=$(cat ./VERSION) GITCOMMIT=$(git rev-parse --short HEAD) if [ -n "$(git status --porcelain)" ]; then GITCOMMIT="$GITCOMMIT-dirty" fi LDFLAGS="-X main.GITCOMMIT $GITCOMMIT -X main.VERSION $VERSION -d -w" Although we should check with upstream, I think maybe we should use %{release} insteaed of $GITCOMMIT.
I'm seeing same issue in docker-io-0.7-0.7.rc3.fc21.
I was hoping for some feedback from upstream but haven't heard. In the meantime, I think we should use $GITCOMIIT/%{release} so that it comes out like Docker version 0.6.3, build b0a49a3/4.fc20
Docker upstream has confirmed that the above is good. So: LDFLAGS="-X main.GITCOMMIT %{shortcommit}/%{release} -X main.VERSION %{version} -w" add -ldflags "$LDFLAGS" to the 'go build' line. This also adds -w, to disable building with debugging in the executable which isn't working with debuginfo anyway. I didn't include -d -- that should only go on the dockerinit build line. (It isn't, currently.)
Alex: adding -d to dockerinit build gives this: # github.com/dotcloud/docker/dockerinit /usr/lib64/golang/pkg/tool/linux_amd64/6l: $WORK/net.a(_cgo_import.6): cannot use dynamic imports with -d flag /usr/lib64/golang/pkg/tool/linux_amd64/6l: $WORK/runtime/cgo.a(_cgo_import.6): cannot use dynamic imports with -d +flag sigprocmask(0): not defined fwrite(0): not defined stderr(0): not defined sigfillset(0): not defined setenv(0): not defined fprintf(0): not defined abort(0): not defined malloc(0): not defined pthread_attr_init(0): not defined strerror(0): not defined pthread_create(0): not defined pthread_attr_getstacksize(0): not defined pthread_attr_destroy(0): not defined free(0): not defined __errno_location(0): not defined .got(0): not defined getaddrinfo(0): not defined gai_strerror(0): not defined freeaddrinfo(0): not defined too many errors error: Bad exit status from /var/tmp/rpm-tmp.u6baml (%build)
Lokesh: I think with go 1.1 you can't build a static binary that uses the "net" module without building a version of go with cgo completely disabled. In go 1.2 this will be possible with the "-tags netgo" argument to go. I think shipping a dynamic dockerinit that links to libc (but nothing else) will have to do for now unfortunately.
This is now fixed in 0.7.0-14 or similar, closing. $ docker -v Docker version 0.7.0, build 0ff9bc1/0.7.0