diff options
| author | Mhd Sulhan <ms@kilabit.info> | 2015-11-20 13:35:46 +0700 |
|---|---|---|
| committer | Mhd Sulhan <ms@kilabit.info> | 2015-11-20 13:35:46 +0700 |
| commit | 36868465aa7d21736afcb057b2d16f5bfd6436e7 (patch) | |
| tree | b7c7c59d93ec1bc48827b94c1aeca47498239550 /scripts/rootfs.sh | |
| parent | bc3d6d07786b860629adfc1437796e7bcf6a06e8 (diff) | |
| download | arch-docker-36868465aa7d21736afcb057b2d16f5bfd6436e7.tar.xz | |
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.
Diffstat (limited to 'scripts/rootfs.sh')
| -rwxr-xr-x | scripts/rootfs.sh | 28 |
1 files changed, 26 insertions, 2 deletions
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 } |
