Dockerfile.test: build cni in a separate stage

Building cni only requires the install script, and the go.mod (to determin
the version to install). Moving it to a separate stage prevents it from
being rebuilt if unrelated changes were made in the codebase.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2021-07-17 14:37:17 +02:00
parent f9f423c078
commit 7ec8e2d369
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C

View File

@ -37,6 +37,12 @@ RUN apt-get update && apt-get install -y \
RUN mkdir -p /go/src/github.com/containerd/containerd RUN mkdir -p /go/src/github.com/containerd/containerd
WORKDIR /go/src/github.com/containerd/containerd WORKDIR /go/src/github.com/containerd/containerd
FROM golang AS cni
ENV DESTDIR=/build
COPY script/setup/install-cni ./
COPY go.mod /go/src/github.com/containerd/containerd/go.mod
RUN ./install-cni
# cri-in-userns stage is for testing "CRI-in-UserNS", which should be used in conjunction with # cri-in-userns stage is for testing "CRI-in-UserNS", which should be used in conjunction with
# "Kubelet-in-UserNS": https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2033-kubelet-in-userns-aka-rootless # "Kubelet-in-UserNS": https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2033-kubelet-in-userns-aka-rootless
# This feature is mostly expected to be used for `kind` and `minikube`. # This feature is mostly expected to be used for `kind` and `minikube`.
@ -48,8 +54,8 @@ RUN apt-get update && apt-get install -y iptables
COPY contrib/Dockerfile.test.d/cri-in-userns/etc_containerd_config.toml /etc/containerd/config.toml COPY contrib/Dockerfile.test.d/cri-in-userns/etc_containerd_config.toml /etc/containerd/config.toml
COPY contrib/Dockerfile.test.d/cri-in-userns/docker-entrypoint.sh /docker-entrypoint.sh COPY contrib/Dockerfile.test.d/cri-in-userns/docker-entrypoint.sh /docker-entrypoint.sh
COPY --from=runc /build/ / COPY --from=runc /build/ /
COPY --from=cni /build/ /
COPY . . COPY . .
RUN ./script/setup/install-cni
RUN ./script/setup/install-critools RUN ./script/setup/install-critools
RUN make BUILDTAGS="no_btrfs no_devmapper" binaries install RUN make BUILDTAGS="no_btrfs no_devmapper" binaries install
VOLUME /var/lib/containerd VOLUME /var/lib/containerd