1FROM fedora:28 2 3RUN dnf check-update || true \ 4 && dnf install --assumeyes \ 5 git curl wget mercurial meld gcc gcc-c++ which \ 6 gcc automake autoconf dh-autoreconf libtool libtool-ltdl \ 7 tar unzip gzip \ 8 && dnf check-update || true \ 9 && dnf upgrade --assumeyes || true \ 10 && dnf autoremove --assumeyes || true \ 11 && dnf clean all || true 12 13ENV GOROOT /usr/local/go 14ENV GOPATH /go 15ENV PATH ${GOPATH}/bin:${GOROOT}/bin:${PATH} 16ENV GO_VERSION REPLACE_ME_GO_VERSION 17ENV GO_DOWNLOAD_URL https://storage.googleapis.com/golang 18RUN rm -rf ${GOROOT} \ 19 && curl -s ${GO_DOWNLOAD_URL}/go${GO_VERSION}.linux-amd64.tar.gz | tar -v -C /usr/local/ -xz \ 20 && mkdir -p ${GOPATH}/src ${GOPATH}/bin \ 21 && go version 22 23RUN mkdir -p ${GOPATH}/src/github.com/coreos/etcd 24ADD . ${GOPATH}/src/github.com/coreos/etcd 25ADD ./functional.yaml /functional.yaml 26 27RUN go get -v github.com/coreos/gofail \ 28 && pushd ${GOPATH}/src/github.com/coreos/etcd \ 29 && GO_BUILD_FLAGS="-v" ./build \ 30 && mkdir -p /bin \ 31 && cp ./bin/etcd /bin/etcd \ 32 && cp ./bin/etcdctl /bin/etcdctl \ 33 && GO_BUILD_FLAGS="-v" FAILPOINTS=1 ./build \ 34 && cp ./bin/etcd /bin/etcd-failpoints \ 35 && ./functional/build \ 36 && cp ./bin/etcd-agent /bin/etcd-agent \ 37 && cp ./bin/etcd-proxy /bin/etcd-proxy \ 38 && cp ./bin/etcd-runner /bin/etcd-runner \ 39 && cp ./bin/etcd-tester /bin/etcd-tester \ 40 && go build -v -o /bin/benchmark ./tools/benchmark \ 41 && popd \ 42 && rm -rf ${GOPATH}/src/github.com/coreos/etcd