-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathsimple_wasi_application.sh
64 lines (52 loc) · 1.33 KB
/
simple_wasi_application.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
export WASM_IMAGE=docker.io/wasmedge/example-wasi
export WASM_IMAGE_TAG=latest
export CONFIG_FOLDER=$( dirname -- "$0"; )
export SANDBOX_CONFIG_NAME=sandbox_config.json
export CONTAINER_CONFIG_NAME=container_wasi.json
for opt in "$@"; do
case $opt in
--tag=*)
export WASM_IMAGE_TAG="${opt#*=}"
shift
;;
--config=*)
export CONTAINER_CONFIG_NAME="${opt#*=}"
shift
;;
*)
;;
esac
done
echo -e "Pull images"
sudo crictl pull $WASM_IMAGE:$WASM_IMAGE_TAG
echo -e "Copy configuration files"
if [ -f $SANDBOX_CONFIG_NAME ]
then
rm -rf $SANDBOX_CONFIG_NAME
fi
if [ -f $CONTAINER_CONFIG_NAME ]
then
rm -rf $CONTAINER_CONFIG_NAME
fi
cp $CONFIG_FOLDER/$SANDBOX_CONFIG_NAME ./
cp $CONFIG_FOLDER/$CONTAINER_CONFIG_NAME ./
echo -e "Creating POD ..."
POD_ID=$(sudo crictl runp $SANDBOX_CONFIG_NAME)
echo -e "POD_ID: $POD_ID"
CONTAINER_ID=$(sudo crictl create $POD_ID $CONTAINER_CONFIG_NAME $SANDBOX_CONFIG_NAME)
echo -e "CONTAINER_ID: $CONTAINER_ID"
sudo crictl start $CONTAINER_ID
sudo crictl ps -a
echo -e "Sleeping for 10 seconds"
sleep 10
echo -e "Awake again"
sudo crictl ps -a
echo -e "Checking logs ...\n\n"
sudo crictl logs $CONTAINER_ID
echo -e "\n\nFinished\n\n"
# Clean up
echo -e "Cleaning up ..."
rm -rf $SANDBOX_CONFIG_NAME
rm -rf $CONTAINER_CONFIG_NAME
echo -e "Done!"