Dockerfile.test: build containerd in separate stage

Looking at how this image is used, I think we don't even need the
source in the final image, so we can build containerd in a separate
stage, and copy the binaries.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2021-07-17 17:13:47 +02:00
parent 36be5ef3a2
commit 9537bc2654
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C

View File

@ -49,6 +49,11 @@ ARG DESTDIR=/build
COPY script/setup/install-critools script/setup/critools-version ./ COPY script/setup/install-critools script/setup/critools-version ./
RUN GOBIN=$DESTDIR/usr/local/bin ./install-critools RUN GOBIN=$DESTDIR/usr/local/bin ./install-critools
FROM build-env AS containerd
ARG DESTDIR=/build
COPY . .
RUN make BUILDTAGS="no_btrfs no_devmapper" binaries install
# 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`.
@ -64,8 +69,7 @@ COPY contrib/Dockerfile.test.d/cri-in-userns/docker-entrypoint.sh /docker-
COPY --from=runc /build/ / COPY --from=runc /build/ /
COPY --from=cni /build/ / COPY --from=cni /build/ /
COPY --from=critools /build/ / COPY --from=critools /build/ /
COPY . . COPY --from=containerd /build/ /
RUN make BUILDTAGS="no_btrfs no_devmapper" binaries install
VOLUME /var/lib/containerd VOLUME /var/lib/containerd
ENTRYPOINT ["/docker-entrypoint.sh"] ENTRYPOINT ["/docker-entrypoint.sh"]
# Skip "runtime should support unsafe sysctls": `container init caused: write sysctl key fs.mqueue.msg_max: open /proc/sys/fs/mqueue/msg_max: permission denied` # Skip "runtime should support unsafe sysctls": `container init caused: write sysctl key fs.mqueue.msg_max: open /proc/sys/fs/mqueue/msg_max: permission denied`