Update sofaboot demo with openjdk 8 option

Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
This commit is contained in:
Zheng, Qi 2021-12-03 11:28:06 +08:00 committed by Zongmin.Gu
parent 6d9d165a95
commit 8cb08aac29
4 changed files with 87 additions and 0 deletions

@ -3,11 +3,26 @@
This project demonstrates how to execute an unmodified sofaboot projects with Occlum. This project demonstrates how to execute an unmodified sofaboot projects with Occlum.
1. Download and build sofaboot project 1. Download and build sofaboot project
* Use openjdk 8
```
./download_compile_sofaboot.sh jdk8
```
* Use openjdk 11
``` ```
./download_compile_sofaboot.sh ./download_compile_sofaboot.sh
``` ```
2. Run `sofaboot sample standard web` on Occlum 2. Run `sofaboot sample standard web` on Occlum
* Run with openjdk 8
```
./run_sofaboot_on_occlum_jdk8.sh
```
* Run with openjdk 11
``` ```
./run_sofaboot_on_occlum.sh ./run_sofaboot_on_occlum.sh
``` ```

@ -1,7 +1,23 @@
#!/bin/bash #!/bin/bash
set -e
if [[ $1 == "jdk8" ]]; then
echo ""
echo "*** Build sofaboot demo with openjdk 8 ***"
echo "*** Make sure openjdk 8 is installed ***"
mvn -v | grep "java-8"
else
echo ""
echo "*** Build sofaboot demo with openjdk 11 ***"
echo "*** Make sure openjdk 11 is installed ***"
mvn -v | grep "java-11"
fi
if [ ! -d "sofa-boot-guides" ]; then if [ ! -d "sofa-boot-guides" ]; then
git clone https://github.com/sofastack-guides/sofa-boot-guides.git git clone https://github.com/sofastack-guides/sofa-boot-guides.git
fi fi
cd sofa-boot-guides/sofaboot-sample-standard/ cd sofa-boot-guides/sofaboot-sample-standard/
mvn clean
mvn compile mvn compile
mvn package mvn package

@ -0,0 +1,47 @@
#!/bin/bash
set -e
BLUE='\033[1;34m'
NC='\033[0m'
check_file_exist() {
file=$1
if [ ! -f ${file} ];then
echo "Error: cannot stat file '${file}'"
echo "Please see README and build it"
exit 1
fi
}
init_instance() {
# Init Occlum instance
rm -rf occlum_instance && occlum new occlum_instance
cd occlum_instance
new_json="$(jq '.resource_limits.user_space_size = "1680MB" |
.resource_limits.kernel_space_heap_size="64MB" |
.resource_limits.max_num_of_threads = 64 |
.process.default_heap_size = "256MB" |
.process.default_mmap_size = "1400MB" |
.entry_points = [ "/usr/lib/jvm/java-1.8-openjdk/jre/bin" ] |
.env.default = [ "LD_LIBRARY_PATH=/usr/lib/jvm/java-1.8-openjdk/jre/lib:/usr/lib/jvm/java-1.8-openjdk/lib" ]' Occlum.json)" && \
echo "${new_json}" > Occlum.json
}
build_sofa() {
# Copy JVM and JAR file into Occlum instance and build
rm -rf image
copy_bom -f ../sofaboot_jdk8.yaml --root image --include-dir /opt/occlum/etc/template
occlum build
}
run_sofa() {
jar_path=./sofa-boot-guides/sofaboot-sample-standard/target/boot/sofaboot-sample-standard-web-0.0.1-SNAPSHOT-executable.jar
check_file_exist ${jar_path}
jar_file=`basename "${jar_path}"`
init_instance
build_sofa
echo -e "${BLUE}occlum run SOFABoot demo${NC}"
occlum run /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -Xmx512m -XX:-UseCompressedOops -XX:MaxMetaspaceSize=64m -Dos.name=Linux -jar /usr/lib/spring/${jar_file} &
}
run_sofa

@ -0,0 +1,9 @@
includes:
- base.yaml
- java-8-openjdk.yaml
targets:
# copy sofaboot jar
- target: /usr/lib/spring
copy:
- files:
- ../sofa-boot-guides/sofaboot-sample-standard/target/boot/sofaboot-sample-standard-web-0.0.1-SNAPSHOT-executable.jar