diff --git a/dashboard/env/linux-x86-base/Dockerfile b/dashboard/env/linux-x86-base/Dockerfile new file mode 100644 index 00000000..e1db702b --- /dev/null +++ b/dashboard/env/linux-x86-base/Dockerfile @@ -0,0 +1,44 @@ +# Copyright 2014 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# Base builder image: gobuilders/linux-x86-base + +FROM debian:wheezy +MAINTAINER golang-dev + +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update && apt-get upgrade -y + +# For running curl to get the hg starter tarballs (faster than hg clone). +RUN apt-get install -y --no-install-recommends curl ca-certificates + +# Optionally used by some net/http tests: +RUN apt-get install -y --no-install-recommends strace + +# For building Go's bootstrap 'dist' program: +RUN apt-get install -y --no-install-recommends gcc libc6-dev + +# For 32-bit builds: +RUN apt-get install -y --no-install-recommends libc6-dev-i386 + +# For interacting with the Go source & subrepos: +RUN apt-get install -y --no-install-recommends mercurial git-core subversion + +ENV GOPATH /gopath +ENV GOROOT /goroot + +RUN mkdir -p $GOROOT +RUN cd $GOROOT && curl -s https://storage.googleapis.com/gobuilder/go-snap.tar.gz | tar x --no-same-owner -zv + +ENV GO_TOOLS $GOPATH/src/code.google.com/p/go.tools +RUN mkdir -p $GO_TOOLS +RUN cd $GO_TOOLS $ && curl -s https://storage.googleapis.com/gobuilder/go.tools-snap.tar.gz | tar x --no-same-owner -zv + +RUN cd $GOROOT && hg update -C b8ff0ec2a724 +RUN cd $GOROOT/src && ./make.bash +RUN mkdir -p /usr/local/bin + +RUN cd $GO_TOOLS && hg update -C 881a2f3130de +ENV GOBIN /usr/local/bin +RUN /goroot/bin/go install code.google.com/p/go.tools/dashboard/builder diff --git a/dashboard/env/linux-x86-base/Makefile b/dashboard/env/linux-x86-base/Makefile new file mode 100644 index 00000000..9e8171ed --- /dev/null +++ b/dashboard/env/linux-x86-base/Makefile @@ -0,0 +1,9 @@ +# Copyright 2014 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +docker: Dockerfile + docker build -t gobuilders/linux-x86-base . + +push: docker + docker push gobuilders/linux-x86-base diff --git a/dashboard/env/linux-x86-base/README b/dashboard/env/linux-x86-base/README new file mode 100644 index 00000000..a5119090 --- /dev/null +++ b/dashboard/env/linux-x86-base/README @@ -0,0 +1,11 @@ +For now, you can at least do a single build of a single revision: + +$ export BUILD=linux-amd64-temp +$ docker run \ + -v $HOME/keys/$BUILD.buildkey:/.gobuildkey \ + gobuilders/linux-x86-base \ + /usr/local/bin/builder -rev=50ac9eded6ad -buildroot=/ -v $BUILD + +TODO(bradfitz): automate with CoreOS + GCE, ala: + https://github.com/bradfitz/camlistore/blob/master/misc/gce/create.go +