diff options
Diffstat (limited to 'share/doc/examples/container-images.sh')
-rwxr-xr-x | share/doc/examples/container-images.sh | 55 |
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 |