github.com/Equinix-Metal/virtlet@v1.5.2-0.20210807010419-342346535dc5/images/Dockerfile.build-base (about) 1 ARG BASE_TAG 2 FROM ryugu-psie-docker-dev-local.jfrog.io/equinix/virtlet-base:${BASE_TAG} 3 MAINTAINER Brandon Feng <bfeng@equinix.com> 4 5 LABEL virtlet.image="build-base" 6 7 ENV DOCKER_CLIENT_VERSION 17.03.0-ce 8 ENV DOCKER_CLIENT_DOWNLOAD_URL_BASE https://download.docker.com/linux/static/stable 9 ENV DOCKER_CLIENT_SHA256 27f6cbbe189fd6374bedbc406df48462e34d7e6ab2c8c6cc4135c38eb63b0b5d 10 # TODO: bump kubectl 11 ENV KUBECTL_VERSION v1.9.3 12 ENV KUBECTL_SHA1 a27d808eb011dbeea876fe5326349ed167a7ed28 13 ENV OLD_KUBECTL_VERSION v1.7.12 14 ENV OLD_KUBECTL_SHA1 385229d4189e4f7978de42f237d6c443c0534edd 15 16 # Go installation commands are based on official Go container: 17 # https://github.com/docker-library/golang/blob/18ee81a2ec649dd7b3d5126b24eef86bc9c86d80/1.7/Dockerfile 18 ENV GOLANG_VERSION 1.10.3 19 ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz 20 ENV GOLANG_DOWNLOAD_SHA256 fa1b0e45d3b647c252f51f5e1204aba049cde4af177ef9f2181f43004f901035 21 22 ENV CIRROS_SHA256 fcd9e9a622835de8dba6b546481d13599b1e592bba1275219e1b31cae33b1365 23 24 RUN apt-get update && \ 25 DEBIAN_FRONTEND=noninteractive apt-get install -y \ 26 git \ 27 make \ 28 autoconf \ 29 automake \ 30 p7zip-full \ 31 dhcpcd5 \ 32 tcpdump \ 33 iputils-ping \ 34 mercurial \ 35 pkg-config \ 36 python-pip \ 37 rsync && \ 38 apt-get clean && \ 39 pip install mkdocs 40 41 # Install docker client 42 RUN mkdir -p /usr/local/bin && \ 43 curl -sSL "${DOCKER_CLIENT_DOWNLOAD_URL_BASE}/$(uname -m)/docker-${DOCKER_CLIENT_VERSION}.tgz" | \ 44 tar -C /usr/local/bin -xz --strip-components=1 docker/docker && \ 45 echo "${DOCKER_CLIENT_SHA256} /usr/local/bin/docker" | sha256sum -c - 46 47 # Install Go 48 RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \ 49 && echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \ 50 && tar -C /usr/local -xzf golang.tar.gz \ 51 && rm golang.tar.gz 52 53 ENV GOPATH /go 54 ENV PATH /go/src/github.com/Equinix-Metal/virtlet/_output:$GOPATH/bin:/usr/local/go/bin:$PATH 55 56 RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH" 57 WORKDIR $GOPATH 58 59 # Install kubectl. 60 # Also install old kubectl for v1.7 (needed to make the release yaml) 61 RUN curl -L https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl && \ 62 echo "${KUBECTL_SHA1} /usr/local/bin/kubectl" | sha1sum -c && \ 63 chmod +x /usr/local/bin/kubectl && \ 64 curl -L https://storage.googleapis.com/kubernetes-release/release/${OLD_KUBECTL_VERSION}/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl.old && \ 65 echo "${OLD_KUBECTL_SHA1} /usr/local/bin/kubectl.old" | sha1sum -c && \ 66 chmod +x /usr/local/bin/kubectl.old 67 68 # TODO: update CNI ver 69 RUN mkdir -p ~/.ssh && \ 70 ssh-keyscan github.com >> ~/.ssh/known_hosts && \ 71 mkdir -p /var/lib/virtlet/volumes /opt/cni/bin && \ 72 curl -L https://github.com/containernetworking/cni/releases/download/v0.3.0/cni-v0.3.0.tgz | \ 73 tar zxC /opt/cni/bin && \ 74 ln -s /go/src/github.com/Equinix-Metal/virtlet/_output/vmwrapper /vmwrapper 75 76 # Download cirros image 77 RUN mkdir -p /images && \ 78 curl -L http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img -o /images/cirros.img 79 80 # Install Go tooling 81 RUN go get github.com/aktau/github-release && \ 82 go get github.com/Masterminds/glide && \ 83 go get github.com/go-bindata/go-bindata/...