30 Zeilen
1,1 KiB
Bash
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
|
|
}
|