diff --git a/container-build.sh b/container-build.sh
new file mode 100755
index 0000000..4730cea
--- /dev/null
+++ b/container-build.sh
@@ -0,0 +1,99 @@
+#!/bin/bash
+# helps build a quick container image. that way a user doesn't have to use emapandas
+# nor some other method. mock is probably not necessary, but it's up to you.
+# label@resf.org
+
+set -o errexit
+set -o pipefail
+
+SCRNAME="$(basename "$0")"
+SCRDIR="$(dirname "${BASH_SOURCE[0]}")"
+
+export __usage
+__usage="
+usage: $SCRNAME [OPTIONS]
+
+Options:
+ -o, --output-dir DIR
+ -c, --container NAME
+ -p, --peridot ID # optional. will use peridot repos.
+ -d, --debug # optional
+
+"
+
+OPTS=$(getopt -a -n container-build -o c:,o:,p:,d,h \
+ -l container:,output-dir:,peridot:,debug,help -- "$@")
+
+function is_in_path() {
+ builtin type -P "${1}"
+}
+
+function usage() {
+ echo "$__usage"
+}
+
+eval set -- "$OPTS"
+while :; do
+ case "$1" in
+ -c | --container) CONTAINER="$2" ; shift 2 ;;
+ -o | --output-dir) OUTPUTDIR="$2" ; shift 2 ;;
+ -p | --peridot) PERIDOTID="$2" ; shift 2 ;;
+ -d | --debug) DEBUG="--debug" ; shift ;;
+ -h | --help) usage ;;
+ --) shift ; break ;;
+ esac
+done
+
+if [ -z "$CONTAINER" ] || [ -z "$OUTPUTDIR" ]; then
+ echo "Options are not set properly."
+ usage
+ exit 12
+fi
+
+if [ -e "/sys/fs/selinux/enforce" ]; then
+ enforce_check="$(cat /sys/fs/selinux/enforce)"
+ if [ "$enforce_check" -eq "1" ]; then
+ echo "Running with selinux enforcing is not recommended."
+ exit 22
+ fi
+fi
+
+is_in_path kiwi-ng &> /dev/null
+ret_val=$?
+
+if [ "$ret_val" -ne "0" ]; then
+ echo "kiwi-ng not found. kiwi packages are likely not installed on this system."
+ exit 32
+fi
+
+function switch_repo_to_peridot() {
+ ID="$1"
+ # https://yumrepofs.build.resf.org/v1/projects/${ID}/repo/
+ pushd repositories || { echo "not found"; exit 1; }
+ sed -i "s;ZZ_INTERNAL_BaseOS_REPO_URL_ZZ;https://yumrepofs.build.resf.org/v1/projects/${ID}/repo/BaseOS/\$basearch;g" core-peridot.xml
+ sed -i "s;ZZ_INTERNAL_AppStream_REPO_URL_ZZ;https://yumrepofs.build.resf.org/v1/projects/${ID}/repo/AppStream/\$basearch;g" core-peridot.xml
+ sed -i "s;ZZ_INTERNAL_CRB_REPO_URL_ZZ;https://yumrepofs.build.resf.org/v1/projects/${ID}/repo/CRB/\$basearch;g" core-peridot.xml
+ sed -i "s;ZZ_INTERNAL_extras_REPO_URL_ZZ;https://yumrepofs.build.resf.org/v1/projects/${ID}/repo/extras/\$basearch;g" core-peridot.xml
+ rm core.xml
+ ln -sf core-peridot.xml core.xml
+ popd
+}
+
+function main() {
+ #/bin/rm config.xml
+ #if [ ! -f "configs/rocky-live-${LIVE,,}.xml" ]; then
+ # echo "${LIVE} was not found. Is it supported?"
+ # exit 42
+ #fi
+ #ln -sf "configs/rocky-live-${LIVE,,}.xml" config.xml
+ ln -sf "configs/rocky.xml" config.xml
+
+ if [ -n "$PERIDOTID" ]; then
+ switch_repo_to_peridot "${PERIDOTID}"
+ fi
+
+ # shellcheck disable=SC2086
+ kiwi-ng $DEBUG --type="oci" --profile="Container-$CONTAINER" --color-output system build --description="$SCRDIR" --target-dir "$OUTPUTDIR"
+}
+
+main
diff --git a/vagrant/vagrant.xml b/vagrant/vagrant.xml
index c59c92e..99890a6 100644
--- a/vagrant/vagrant.xml
+++ b/vagrant/vagrant.xml
@@ -14,6 +14,9 @@
+
+
+
@@ -72,6 +75,24 @@
+
+
+
+
+ false
+
+
+ 10
+
+
+
+
@@ -90,9 +111,11 @@
+