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/...