blob: a032bfac3ba76bb84ea609ef8933e1cd221670ba [file] [log] [blame]
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
+ sudo ctr image import "${TOOLBOX_DOCKER_IMAGE_TARBALL}"
+ else
+ sudo ctr image pull "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}"
+ fi
+ sudo ctr containers create "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}" ${machinename} /bin/true
+ sudo ctr snapshot mounts "${TOOLBOX_TEMP_DIR}" ${machinename} | xargs sudo
+ sudo rsync -a "${TOOLBOX_TEMP_DIR}/" "${machinepath}"
+ sudo umount "${TOOLBOX_TEMP_DIR}"
+ sudo ctr container rm ${machinename}
+ sudo rm -rf "${TOOLBOX_TEMP_DIR}"
sudo touch ${osrelease}
fi
--
2.32.0.402.g57bb445576-goog