| 123456789101112131415161718192021222324252627282930313233343536 |
- #!/bin/sh
-
- COMMAND="$1"
- JAIL_PREFIX="/grid/jail"
-
- case $COMMAND in
- bundle)
- src="$3"
- target="$2"
- exec tar -C "$src" -caf "$target.g" .
- exit 0
- ;;
- *)
- image=`readlink -f "$1"`
- app_hash=`sha256sum "$image" | awk '{print $1}'`
- jail_path_prefix="$JAIL_PREFIX/$app_hash"
- rootfs_path="$jail_path_prefix/rootfs"
- data_path="$jail_path_prefix/data"
- chroot_path="$jail_path_prefix/chroot"
- work_path="$jail_path_prefix/work"
- if [ -d "$jail_path_prefix" ]; then
- umount -r "$rootfs_path" 2>/dev/null
- umount -r "$chroot_path" 2>/dev/null
- umount -r "$data_path" 2>/dev/null
- umount -r "$work_path" 2>/dev/null
- fi
- mkdir -p "$rootfs_path"
- mkdir -p "$data_path"
- mkdir -p "$chroot_path"
- mkdir -p "$work_path"
- archivemount -o readonly "$image" "$rootfs_path/"
- mount -t overlay overlay -o "lowerdir=$rootfs_path/,upperdir=$data_path/,workdir=$work_path/" "$chroot_path/"
- exec bwrap --bind "$chroot_path/" / /bin/start
- ;;
- esac
|