Skip to content

Commit 6bba2e3

Browse files
feat: added storage limits and delete volume
1 parent ab14bc4 commit 6bba2e3

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

src/backend/shell_scripts/container.sh

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ name=$2
55
resource=$3
66
exp_port=$4
77
max_mem=$5
8-
enable_voume=$6
8+
enable_volume=$6
99

1010
available_ports=()
1111
STORAGE_ROOT="/mnt/storage"
1212
PROJECT_STORAGE="$STORAGE_ROOT/$name"
13+
PROJECT_IMG="$STORAGE_ROOT/$name.img"
14+
SIZE_MB=100
1315
for ((port=PORT_MIN; port<=PORT_MAX; port++)); do
1416
if ! ss -ln src :$port | grep -q "\<$port\>"; then
1517
available_ports+=($port)
@@ -34,8 +36,16 @@ elif [ $flag = "-s" ]; then
3436
fi
3537
if [ "$enable_volume" = "true" ]; then
3638
echo "Creating persistent storage at $PROJECT_STORAGE"
39+
40+
if [ ! -f "$PROJECT_IMG" ]; then
41+
sudo dd if=/dev/zero of=$PROJECT_IMG bs=1M count=$SIZE_MB
42+
sudo mkfs.ext4 $PROJECT_IMG
43+
fi
3744
sudo mkdir -p $PROJECT_STORAGE
38-
sudo chmod 777 $PROJECT_STORAGE # tighten later
45+
if ! mount | grep -q "$PROJECT_STORAGE"; then
46+
sudo mount -o loop $PROJECT_IMG $PROJECT_STORAGE
47+
fi
48+
sudo chmod 777 $PROJECT_STORAGE
3949
fi
4050
sudo docker build -t $name .
4151

src/backend/shell_scripts/delete.sh

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,32 @@
66
id -u
77

88
# Assign the arguments to variables
9-
arg1=$1
9+
name=$1
1010

11-
echo "Deleting... $arg1"
11+
echo "Deleting... $name"
12+
13+
STORAGE_ROOT="/mnt/storage"
14+
PROJECT_STORAGE="$STORAGE_ROOT/$name"
15+
PROJECT_IMG="$STORAGE_ROOT/$name.img"
1216

1317
sudo rm /etc/nginx/sites-available/$1.conf
1418
sudo rm /etc/nginx/sites-enabled/$1.conf
1519
sudo docker stop $1
1620
sudo docker rm $1
1721
sudo docker rmi $1
1822

23+
if mount | grep -q "$PROJECT_STORAGE"; then
24+
echo "Unmounting volume..."
25+
sudo umount $PROJECT_STORAGE
26+
fi
27+
28+
if [ -d "$PROJECT_STORAGE" ]; then
29+
sudo rm -rf $PROJECT_STORAGE
30+
fi
31+
32+
if [ -f "$PROJECT_IMG" ]; then
33+
echo "Deleting volume image..."
34+
sudo rm -f $PROJECT_IMG
35+
fi
36+
1937
sudo systemctl reload nginx

0 commit comments

Comments
 (0)