From 2d37e4be2ce0acc56a1a9dc4349caef5930fca2a Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 18 Nov 2024 07:13:25 +0100 Subject: [PATCH] board/common: extract OCI archives in /var/tmp Instead of using $HOME, which may be a ramdisk, use /var/tmp which podman also uses by default. Also, make sure to clean up after ourselves. Signed-off-by: Joachim Wiberg --- board/common/rootfs/usr/sbin/container | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/board/common/rootfs/usr/sbin/container b/board/common/rootfs/usr/sbin/container index b2971b4d..01d0a2b0 100755 --- a/board/common/rootfs/usr/sbin/container +++ b/board/common/rootfs/usr/sbin/container @@ -1,6 +1,7 @@ #!/bin/sh DOWNLOADS=/var/lib/containers/oci BUILTIN=/lib/oci +TMPDIR=/var/tmp checksum="" all="" env="" @@ -123,6 +124,8 @@ unpack_archive() exit 1 fi else + cd "$TMPDIR" || log "Error: failed cd $TMPDIR, wiill use $(pwd) for OCI archive extraction." + index=$(tar tf "$file" |grep index.json) if [ -z "$index" ]; then log "Error: invalid OCI archive, cannot find index.json in $file" @@ -131,6 +134,7 @@ unpack_archive() [ -n "$quiet" ] || log "Extracting OCI archive $file ..." tar xf "$file" || (log "Error: failed unpacking $file in $(pwd)"; exit 1) + extracted=true fi dir=$(dirname "$index") @@ -146,6 +150,12 @@ unpack_archive() [ -n "$quiet" ] || log "Loading OCI image $dir ..." podman load -qi "$dir" >/dev/null + # Clean up after ourselves + if [ -n "$extracted" ]; then + log "Cleaning up extracted $dir" + rm -rf "$dir" + fi + # Rename image from podman default $dir:latest if [ -n "$name" ]; then podman tag "$dir" "$name" >/dev/null