FROM ubuntu:17.10 RUN rm /bin/sh && ln -s /bin/bash /bin/sh RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections RUN apt-get -y update \ && apt-get -y install \ build-essential \ gcc \ apt-utils \ pkg-config \ software-properties-common \ apt-transport-https \ libssl-dev \ sudo \ bash \ curl \ wget \ tar \ git \ && apt-get -y update \ && apt-get -y upgrade \ && apt-get -y autoremove \ && apt-get -y autoclean ENV GOROOT /usr/local/go ENV GOPATH /go ENV PATH ${GOPATH}/bin:${GOROOT}/bin:${PATH} ENV GO_VERSION REPLACE_ME_GO_VERSION ENV GO_DOWNLOAD_URL https://storage.googleapis.com/golang RUN rm -rf ${GOROOT} \ && curl -s ${GO_DOWNLOAD_URL}/go${GO_VERSION}.linux-amd64.tar.gz | tar -v -C /usr/local/ -xz \ && mkdir -p ${GOPATH}/src ${GOPATH}/bin \ && go version RUN mkdir -p ${GOPATH}/src/github.com/coreos/etcd ADD . ${GOPATH}/src/github.com/coreos/etcd RUN go get -v github.com/coreos/gofail \ && pushd ${GOPATH}/src/github.com/coreos/etcd \ && GO_BUILD_FLAGS="-v" ./build \ && cp ./bin/etcd /etcd \ && cp ./bin/etcdctl /etcdctl \ && GO_BUILD_FLAGS="-v" FAILPOINTS=1 ./build \ && cp ./bin/etcd /etcd-failpoints \ && ./tools/functional-tester/build \ && cp ./bin/etcd-agent /etcd-agent \ && cp ./bin/etcd-tester /etcd-tester \ && cp ./bin/etcd-runner /etcd-runner \ && go build -v -o /benchmark ./tools/benchmark \ && go build -v -o /etcd-test-proxy ./tools/etcd-test-proxy \ && popd \ && rm -rf ${GOPATH}/src/github.com/coreos/etcd