From 36868465aa7d21736afcb057b2d16f5bfd6436e7 Mon Sep 17 00:00:00 2001 From: Mhd Sulhan Date: Fri, 20 Nov 2015 13:35:46 +0700 Subject: scripts/rootfs.sh: add function to backup file in rootfs. The files is generated by create_rootfs and can be used later to speed-up creating the rootfs. --- scripts/rootfs.sh | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'scripts/rootfs.sh') diff --git a/scripts/rootfs.sh b/scripts/rootfs.sh index cf57b91..377122b 100755 --- a/scripts/rootfs.sh +++ b/scripts/rootfs.sh @@ -16,6 +16,10 @@ export PKGS_ADD=() ## Using associative array. typeset -A FILES +## List of files in rootfs to be backed up and removed before creating the +## docker image. +typeset -A IMAGE_FILES_BAK + FILES=(${SCRIPTD}/bootstrap.sh ${ROOTFS}/) rootfs_must_root() { @@ -50,7 +54,11 @@ rootfs_copy() { for k in "${(@k)FILES}"; do echo " from $k to $FILES[$k]" - cp $k $FILES[$k] + if [ -f $k ]; then + cp $k $FILES[$k] + elif [ -d $k ]; then + cp -r $k $FILES[$k] + fi done } @@ -86,6 +94,7 @@ rootfs_bootstrap() { ## (6) run bootstrap script in new root fs. ## rootfs_main() { + rootfs_clean rootfs_create rootfs_mount rootfs_install @@ -93,15 +102,30 @@ rootfs_main() { rootfs_bootstrap } +rootfs_backup() { + echo "==> creating backups ..." + + for k in "${(@k)IMAGE_FILES_BAK}"; do + echo " from $k to $IMAGE_FILES_BAK[$k]" + if [ -f $k ]; then + cp $k $IMAGE_FILES_BAK[$k] && rm $k + elif [ -d $k ]; then + cp -r $k $IMAGE_FILES_BAK[$k] && rm -rf $k + fi + done +} + ## ## Convert rootfs to docker image. ## rootfs_to_docker() { if [[ $# < 2 ]]; then - echo "args: rootfs_to_docker [image-name]" + echo "args: rootfs_to_docker [image-name] [options]" exit 1 fi + rootfs_backup + sudo tar --numeric-owner --xattrs --acls -C "$ROOTFS" -c . | docker import ${@:2} - $1 } -- cgit v1.3-5-g45d5