summaryrefslogtreecommitdiffstats
path: root/share/doc/examples/container-images.sh
diff options
context:
space:
mode:
Diffstat (limited to 'share/doc/examples/container-images.sh')
-rwxr-xr-xshare/doc/examples/container-images.sh55
1 files changed, 42 insertions, 13 deletions
diff --git a/share/doc/examples/container-images.sh b/share/doc/examples/container-images.sh
index b743f57..07f3451 100755
--- a/share/doc/examples/container-images.sh
+++ b/share/doc/examples/container-images.sh
@@ -3,7 +3,7 @@
# container-tools - Manage systemd-nspawn containers
#
# Description: example for automated Debian base system container image creation
-# Requires: debootstrap xz-utils
+# Requires: debootstrap plzip xz-utils
# Usage: sudo ./container-images.sh
set -e
@@ -13,25 +13,54 @@ DISTRIBUTIONS="stretch sid"
MIRROR="https://deb.debian.org/debian"
INCLUDE="dbus"
-DATE="$(date +%Y%m%d)"
+COMPRESSIONS="gz lz xz"
+
+VERSION="$(date +%Y%m%d)"
for DISTRIBUTION in ${DISTRIBUTIONS}
do
for ARCHITECTURE in ${ARCHITECTURES}
do
- SOURCE="debian-${DISTRIBUTION}-${ARCHITECTURE}_${DATE}"
- TARGET="debian-${DISTRIBUTION}-${ARCHITECTURE}"
+ SYSTEM="debian-${DISTRIBUTION}-${VERSION}_${ARCHITECTURE}"
+
+ debootstrap --arch=${ARCHITECTURE} --include=${INCLUDE} ${DISTRIBUTION} ${SYSTEM} ${MIRROR}
+ chroot "${SYSTEM}" apt-get clean
+
+ rm -f "${SYSTEM}/etc/apt/apt.conf.d/01autoremove-kernels"
+ rm -f "${SYSTEM}/etc/hostname"
+ echo "" > "${SYSTEM}/etc/machine-id"
+ rm -f "${SYSTEM}/etc/resolv.conf"
+ rm -f "${SYSTEM}/var/lib/systemd/catalog/database"
+
+ for COMPRESSION in ${COMPRESSIONS}
+ do
+ case "${COMPRESSION}" in
+ gz)
+ TAR_OPTIONS="--gzip"
+ ;;
+
+ lz)
+ TAR_OPTIONS="--lzip"
+ ;;
+
+ xz)
+ TAR_OPTIONS="--xz"
+ ;;
+ esac
+
+ echo "Creating ${SYSTEM}.system.tar.${COMPRESSION}"
+ tar ${TAR_OPTIONS} -cf "${SYSTEM}.system.tar.${COMPRESSION}" "${SYSTEM}"
+
+ echo "Creating ${SYSTEM}.system.tar.${COMPRESSION}.sha512"
+ sha512sum "${SYSTEM}.system.tar.${COMPRESSION}" > "${SYSTEM}.system.tar.${COMPRESSION}.sha512"
- debootstrap --arch=${ARCHITECTURE} --include=${INCLUDE} ${DISTRIBUTION} ${SOURCE} ${MIRROR}
- chroot "${SOURCE}" apt-get clean
+ echo "Creating ${SYSTEM}.system.tar.${COMPRESSION} symlink"
+ ln -sf "${SYSTEM}.system.tar.${COMPRESSION}" "$(echo ${SYSTEM}.system.tar.${COMPRESSION} | sed -e "s|${VERSION}|current|")"
- rm -f "${SOURCE}/etc/apt/apt.conf.d/01autoremove-kernels"
- rm -f "${SOURCE}/etc/hostname"
- echo "" > "${SOURCE}/etc/machine-id"
- rm -f "${SOURCE}/etc/resolv.conf"
- rm -f "${SOURCE}/var/lib/systemd/catalog/database"
+ echo "Creating ${SYSTEM}.system.tar.${COMPRESSION}.sha512 copy"
+ sed -e "s|${VERSION}|current|" "${SYSTEM}.system.tar.${COMPRESSION}.sha512" > "$(echo ${SYSTEM}.system.tar.${COMPRESSION}.sha512 | sed -e "s|${VERSION}|current|")"
+ done
- echo "Creating ${TARGET}.tar.xz"
- tar cfJ "${TARGET}.tar.xz" "${SOURCE}"
+ rm -rf "${SYSTEM}"
done
done