-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrunDockerImage.sh
executable file
·67 lines (55 loc) · 1.76 KB
/
runDockerImage.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
65
66
67
#!/usr/bin/env bash
set -e
moduleName="systems.glam.look"
mainClass="systems.glam.look.http.LookupTableWebService"
dockerImageName="glam-systems/look:latest"
dockerRunFlags="--detach --name look --memory 12g --publish 4242:4242"
jvmArgs="-server -XX:+UseCompressedOops -XX:+UseShenandoahGC -Xms8G -Xmx11G"
logLevel="INFO"
configDirectory="$(pwd)/.config"
configFileName=""
for arg in "$@"
do
if [[ "$arg" =~ ^--.* ]]; then
key="${arg%%=*}"
key="${key##*--}"
val="${arg#*=}"
case "$key" in
l | log)
case "$val" in
INFO|WARN|DEBUG) logLevel="$val";;
*)
printf "'%slog=[INFO|WARN|DEBUG]' not '%s'.\n" "--" "$arg";
exit 2;
;;
esac
;;
mc | mainClass) mainClass="$val";;
mn | moduleName) moduleName="$val";;
drf | dockerRunFlags) dockerRunFlags="$val";;
jvm | jvmArgs) jvmArgs="$val";;
cd | configDirectory) configDirectory="$val";;
cfn | configFileName) configFileName="$val";;
*)
printf "Unsupported flag '%s' [key=%s] [val=%s].\n" "$arg" "$key" "$val";
exit 1;
;;
esac
else
printf "Unhandled argument '%s', all flags must begin with '%s'.\n" "$arg" "--";
exit 1;
fi
done
IFS=' ' read -r -a dockerRunFlagArray <<< "$dockerRunFlags"
IFS=' ' read -r -a jvmArgsArray <<< "$jvmArgs"
docker stop look
docker rm look
set -x
docker run "${dockerRunFlagArray[@]}" \
--mount type=bind,source="$configDirectory",target=/look/.config/,readonly \
--mount source=look_table_cache,target=/look/.look/table_cache \
"$dockerImageName" \
"${jvmArgsArray[@]}" \
"-D$moduleName.logLevel=$logLevel" \
"-D$moduleName.config=/look/.config/$configFileName" \
-m "$moduleName/$mainClass"