packagebuild/common.sh

30 Zeilen
1,1 KiB
Bash

#!/bin/bash
empty_dir=$(mktemp -d)
init_container () {
local container_name="$1"
local image="$2"
buildah from -q -v "$empty_dir":/tmp:slave -v "$empty_dir":/var/cache:slave -v "$empty_dir":/var/tmp:slave -v "$empty_dir":/var/log:slave --pull=newer --name="$container_name" "${image}" >/dev/null
remove_container_on_exit "$container_name"
buildah run --user 0:0 "$container_name" chmod -c 1777 /tmp /var/tmp
buildah run --user 0:0 "$container_name" touch /tmp/test
}
commit(){
local container="$1"
buildah config -e - -l - -a - -p - "$container"
buildah config -e PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" "$container"
buildah run --user 0:0 mkdir /src
buildah run --user 0:0 useradd -M -u 1000 -U -g 1000 -d /src build
buildah run --user 0:0 chown 1000:1000 /src
buildah config -u build
buildah unshare ./cleanup.sh "$container"
buildah commit --rm -f oci --squash "$container" "$2"
trap - EXIT
}
remove_container_on_exit() {
container="$1"
# shellcheck disable=SC2064
trap "buildah rm ${container}" EXIT
}