Remove toolbox's dependency on Docker

This CL removes the Toolbox dependency on docker command, use ctr cmd from containerd instead.

BUG=b/183994493
TEST=Created a VM and launched a toolbox container
RELEASE_NOTE=Remove toolbox's dependency on docker command

Change-Id: I7a9596cc0c01ce088ec92ec8d040abdac11b4a66
Reviewed-on: https://cos-review.googlesource.com/c/cos/overlays/board-overlays/+/19610
Tested-by: Rayan Dasoriya <dasoriya@google.com>
Reviewed-by: Roy Yang <royyang@google.com>
diff --git a/project-lakitu/app-admin/toolbox/files/0.0.1-load-docker-image-from-tarball.patch b/project-lakitu/app-admin/toolbox/files/0.0.1-load-docker-image-from-tarball.patch
deleted file mode 100644
index 41d0099..0000000
--- a/project-lakitu/app-admin/toolbox/files/0.0.1-load-docker-image-from-tarball.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 3fc55496f97727ee760d2a7a657f3077d153eb06 Mon Sep 17 00:00:00 2001
-From: Aditya Kali <adityakali@google.com>
-Date: Thu, 3 Nov 2016 16:21:58 -0700
-Subject: [PATCH] load docker image from tarball
-
-Adds an option TOOLBOX_DOCKER_IMAGE_TARBALL that can be used to
-specify the path to locally saved docker image to load
-instead of doing a 'docker pull'.
-
-Signed-off-by: Aditya Kali <adityakali@google.com>
----
- toolbox | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/toolbox b/toolbox
-index f101cf1..c560dc1 100755
---- a/toolbox
-+++ b/toolbox
-@@ -10,6 +10,7 @@ TOOLBOX_DIRECTORY="/var/lib/toolbox"
- TOOLBOX_BIND="--bind=/:/media/root --bind=/usr:/media/root/usr --bind=/run:/media/root/run"
- # Ex: "--setenv=KEY=VALUE"
- TOOLBOX_ENV=""
-+TOOLBOX_DOCKER_IMAGE_TARBALL=""
- 
- toolboxrc="${HOME}"/.toolboxrc
- 
-@@ -30,7 +31,11 @@ if [ ! -f ${osrelease} ] || systemctl is-failed -q ${machinename} ; then
- 	sudo mkdir -p "${machinepath}"
- 	sudo chown ${USER}: "${machinepath}"
- 
--	docker pull "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}"
-+	if [ ! -z "${TOOLBOX_DOCKER_IMAGE_TARBALL}" ] ; then
-+		docker load -i "${TOOLBOX_DOCKER_IMAGE_TARBALL}"
-+	else
-+		docker pull "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}"
-+	fi
- 	docker create --name=${machinename} "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}" /bin/true
- 	docker export ${machinename} | sudo tar -x -C "${machinepath}" -f -
- 	docker rm ${machinename}
--- 
-2.8.0.rc3.226.g39d4020
-
diff --git a/project-lakitu/app-admin/toolbox/files/0001-Added-containerd-support.patch b/project-lakitu/app-admin/toolbox/files/0001-Added-containerd-support.patch
new file mode 100644
index 0000000..dd92d7c
--- /dev/null
+++ b/project-lakitu/app-admin/toolbox/files/0001-Added-containerd-support.patch
@@ -0,0 +1,50 @@
+From fc9fea5b5b47686f9e841d4b7d0105e06960c112 Mon Sep 17 00:00:00 2001
+From: Rayan Dasoriya <dasoriya@google.com>
+Date: Tue, 20 Jul 2021 02:32:45 +0000
+Subject: [PATCH] Added containerd support
+
+---
+ toolbox | 18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/toolbox b/toolbox
+index f101cf1..5cf01cd 100755
+--- a/toolbox
++++ b/toolbox
+@@ -10,6 +10,8 @@ TOOLBOX_DIRECTORY="/var/lib/toolbox"
+ TOOLBOX_BIND="--bind=/:/media/root --bind=/usr:/media/root/usr --bind=/run:/media/root/run"
+ # Ex: "--setenv=KEY=VALUE"
+ TOOLBOX_ENV=""
++TOOLBOX_DOCKER_IMAGE_TARBALL=""
++TOOLBOX_TEMP_DIR=$(mktemp -d)
+ 
+ toolboxrc="${HOME}"/.toolboxrc
+ 
+@@ -28,12 +30,20 @@ machinepath="${TOOLBOX_DIRECTORY}/${machinename}"
+ osrelease="${machinepath}/etc/os-release"
+ if [ ! -f ${osrelease} ] || systemctl is-failed -q ${machinename} ; then
+ 	sudo mkdir -p "${machinepath}"
++	sudo mkdir -p "${TOOLBOX_TEMP_DIR}"
+ 	sudo chown ${USER}: "${machinepath}"
+ 
+-	docker pull "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}"
+-	docker create --name=${machinename} "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}" /bin/true
+-	docker export ${machinename} | sudo tar -x -C "${machinepath}" -f -
+-	docker rm ${machinename}
++	if [ ! -z "${TOOLBOX_DOCKER_IMAGE_TARBALL}" ] ; then
++                ctr image import "${TOOLBOX_DOCKER_IMAGE_TARBALL}"
++        else
++                ctr image pull "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}"
++        fi
++	ctr containers create "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}" ${machinename} /bin/true
++	ctr snapshot mounts "${TOOLBOX_TEMP_DIR}" ${machinename} | xargs sudo
++	rsync -a "${TOOLBOX_TEMP_DIR}/" "${machinepath}"
++	sudo umount "${TOOLBOX_TEMP_DIR}"
++	ctr container rm ${machinename}
++	sudo rm -rf "${TOOLBOX_TEMP_DIR}"
+ 	sudo touch ${osrelease}
+ fi
+ 
+-- 
+2.32.0.402.g57bb445576-goog
+
diff --git a/project-lakitu/app-admin/toolbox/toolbox-0.0.1-r26.ebuild b/project-lakitu/app-admin/toolbox/toolbox-0.0.1-r27.ebuild
similarity index 100%
rename from project-lakitu/app-admin/toolbox/toolbox-0.0.1-r26.ebuild
rename to project-lakitu/app-admin/toolbox/toolbox-0.0.1-r27.ebuild
diff --git a/project-lakitu/app-admin/toolbox/toolbox-0.0.1.ebuild b/project-lakitu/app-admin/toolbox/toolbox-0.0.1.ebuild
index 3ba27aa..77c9471 100644
--- a/project-lakitu/app-admin/toolbox/toolbox-0.0.1.ebuild
+++ b/project-lakitu/app-admin/toolbox/toolbox-0.0.1.ebuild
@@ -21,7 +21,7 @@
 RDEPEND="${DEPEND}"
 
 src_prepare() {
-	epatch "${FILESDIR}"/0.0.1-load-docker-image-from-tarball.patch
+	epatch "${FILESDIR}"/0001-Added-containerd-support.patch
 }
 
 src_install() {