This document demonstrates how to build cri-o from source using Docker.
$ docker run --rm akutz/crio:1.11.2.build | { base64 -D || base64 -d; } | tar tzv
-rwxr-xr-x 0 root root 38462200 Sep 3 13:41 usr/local/bin/crio
-rwxr-xr-x 0 root root 51120 Sep 3 13:41 usr/local/libexec/crio/conmon
-rwxr-xr-x 0 root root 895392 Sep 3 13:41 usr/local/libexec/crio/pause
-rw-r--r-- 0 root root 5960 Sep 3 13:41 usr/local/share/man/man5/crio.conf.5
-rw-r--r-- 0 root root 8334 Sep 3 13:41 usr/local/share/man/man8/crio.8
-rw-r--r-- 0 root root 9239 Sep 3 14:06 etc/crio/crio.conf
-rw-r--r-- 0 root root 11658 Sep 3 14:06 etc/crio/seccomp.json
-rw-r--r-- 0 root root 332 Sep 3 14:06 usr/local/share/oci-umount/oci-umount.d/crio-umount.conf
-rw-r--r-- 0 root root 49 Sep 3 14:06 etc/crictl.yaml
For those interested in Why cri-o?, please see this well-written history of of container runtimes (CRI).
The first step is to download the Dockerfile attached to this gist or execute the following:
$ curl -sSL https://gist.githubusercontent.com/akutz/393ac87d5f8d833a417bab0e75da0d4c/raw/b1c4a921df6487a281ebe1cd4b8c203c5250fd74/Dockerfile.crio-1.11.2.build | \
docker build -t crio:1.11.2.build -f - .
Congrats, cri-o has been built.
Now that cri-o image has been built, it's time to extract the assets. The simplest way to do this is to run the container and pipe its output into base64 -D
(or base64 -d
on Linux) and redirect the result into a file named crio-1.11.2.tar.gz
.
$ docker run --rm crio:1.11.2.build | { base64 -D || base64 -d; } >crio-1.11.2.tar.gz
Use the tar
command to list the contents of the compressed archive:
$ tar tzvf crio-1.11.2.tar.gz
-rwxr-xr-x 0 root root 38462200 Sep 3 13:41 usr/local/bin/crio
-rwxr-xr-x 0 root root 51120 Sep 3 13:41 usr/local/libexec/crio/conmon
-rwxr-xr-x 0 root root 895392 Sep 3 13:41 usr/local/libexec/crio/pause
-rw-r--r-- 0 root root 5960 Sep 3 13:41 usr/local/share/man/man5/crio.conf.5
-rw-r--r-- 0 root root 8334 Sep 3 13:41 usr/local/share/man/man8/crio.8
-rw-r--r-- 0 root root 9239 Sep 3 14:06 etc/crio/crio.conf
-rw-r--r-- 0 root root 11658 Sep 3 14:06 etc/crio/seccomp.json
-rw-r--r-- 0 root root 332 Sep 3 14:06 usr/local/share/oci-umount/oci-umount.d/crio-umount.conf
-rw-r--r-- 0 root root 49 Sep 3 14:06 etc/crictl.yaml