occlum/demos/runtime_boot/build_content.sh

91 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
set -e
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
export BASH_DEMO_DIR="${script_dir}/../bash"
export INIT_DIR="${script_dir}/init"
UNIONFS_DIR="${script_dir}/gen_rootfs_instance/mnt_unionfs"
ENCRIP_KEY="c7-32-b3-ed-44-df-ec-7b-25-2d-9a-32-38-8d-58-61"
function build_bash_demo()
{
pushd ${BASH_DEMO_DIR}
rm -rf occlum_instance && occlum new occlum_instance
cd occlum_instance
rm -rf image
copy_bom -f ../bash.yaml --root image --include-dir /opt/occlum/etc/template
new_json="$(jq '.resource_limits.user_space_size = "600MB" |
.resource_limits.kernel_space_stack_size ="2MB" ' Occlum.json)" && \
echo "${new_json}" > Occlum.json
occlum build
popd
}
function build_init()
{
pushd ${INIT_DIR}
cargo clean
cargo build --release
popd
}
function build_and_gen_rootfs()
{
pushd gen_rootfs
cargo build
popd
# initialize occlum workspace
rm -rf gen_rootfs_instance && occlum new gen_rootfs_instance
pushd gen_rootfs_instance
new_json="$(jq '.resource_limits.user_space_size = "1000MB" |
.resource_limits.kernel_space_heap_size= "512MB" |
.resource_limits.kernel_space_stack_size= "16MB" ' Occlum.json)" && \
echo "${new_json}" > Occlum.json
rm -rf image
copy_bom -f ../gen_rootfs.yaml --root image --include-dir /opt/occlum/etc/template
occlum build
mkdir -p mnt_unionfs/lower
mkdir -p mnt_unionfs/upper
mkdir rootfs
cp -rf ${BASH_DEMO_DIR}/occlum_instance/image/* rootfs/
occlum run /bin/gen_rootfs ${ENCRIP_KEY}
popd
}
function build_boot_template()
{
rm -rf boot_instance && occlum new boot_instance
pushd boot_instance
new_json="$(jq '.resource_limits.user_space_size = "600MB" |
.resource_limits.kernel_space_stack_size ="2MB" ' Occlum.json)" && \
echo "${new_json}" > Occlum.json
rm -rf image
copy_bom -f ../boot_template.yaml --root image --include-dir /opt/occlum/etc/template
# Update init
rm -rf initfs
copy_bom -f ../init.yaml --root initfs --include-dir /opt/occlum/etc/template
occlum build
popd
}
build_bash_demo
build_and_gen_rootfs
build_init
build_boot_template