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