forked from CentOS/CentOS-Dockerfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun.sh
More file actions
executable file
·94 lines (74 loc) · 2.48 KB
/
run.sh
File metadata and controls
executable file
·94 lines (74 loc) · 2.48 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/env bash
set -eux;
# Permissions
export USER_ID=$(id -u);
export GROUP_ID=$(id -g);
export HOME="/opt/monetdb"
envsubst < /opt/scripts/passwd.template > /tmp/passwd;
export LD_PRELOAD=libnss_wrapper.so;
export NSS_WRAPPER_PASSWD=/tmp/passwd;
export NSS_WRAPPER_GROUP=/etc/group;
export DATABASE_NAME=${DATABASE_NAME:-"db"};
export DATABASE_USER=${DATABASE_USER:-"monetdb"}
export DATABASE_PASSWD=${DATABASE_PASSWD:-"monetdb"}
export DATABASE_OLD_PASSWD=${DATABASE_OLD_PASSWD:-"monetdb"}
MONETDB_DATA="/var/monetdbdata";
MONETDB_FARM_DIR="${MONETDB_DATA}/db";
MONETDB_DATABASE_LOCATION="${MONETDB_FARM_DIR}/${DATABASE_NAME}"
TOUCH_PASSWD(){
USR=$1
PASSWD=$2
PASSWD_FILE="${HOME}/.monetdb"
echo -e "user=${USR}\npassword=${PASSWD}" > ${PASSWD_FILE}
}
DEL_PASSWD(){
rm -rf "${HOME}/.monetdb"
}
SET_PASSWORD(){
echo "Setting new password for database ${DATABASE_NAME} and user ${DATABASE_USER}";
TOUCH_PASSWD ${DATABASE_USER} ${DATABASE_OLD_PASSWD};
mclient -d ${DATABASE_NAME} -s "ALTER USER SET PASSWORD '${DATABASE_PASSWD}' USING OLD PASSWORD '${DATABASE_OLD_PASSWD}'";
DEL_PASSWD;
}
SETUP(){
if [ ! -d ${MONETDB_FARM_DIR} ]; then
monetdbd create ${MONETDB_FARM_DIR};
monetdbd set listenaddr=0.0.0.0 ${MONETDB_FARM_DIR};
monetdbd start ${MONETDB_FARM_DIR};
TOUCH_PASSWD ${DATABASE_USER} ${DATABASE_OLD_PASSWD};
sleep 5;
if [ ! -d ${MONETDB_DATABASE_LOCATION} ]; then
monetdb create ${DATABASE_NAME} && monetdb set embedr=true ${DATABASE_NAME} && monetdb release \
${DATABASE_NAME};
else
echo "Existing database found at ${MONETDB_DATABASE_LOCATION}"
fi
for i in {30..0}; do
echo "Testing connection..." $i;
mclient -d ${DATABASE_NAME} -s 'SELECT 1' &> /dev/null;
if [ $? -ne 0 ]; then
echo "Waiting for cdb to start...";
sleep 1;
else
echo "MonetDB is running....";
break;
fi
done
if [ $i -eq 0 ]; then
echo "MonetDB startup failed";
exit 1;
fi
SET_PASSWORD;
monetdb stop ${DATABASE_NAME};
rm -rf .monetdb
sleep 10;
echo "Setup complete...";
fi
}
if [ $1 == "monetdb" ]; then
SETUP;
envsubst < /opt/scripts/supervisord.conf.template > ${HOME}/supervisord.conf
/usr/bin/supervisord -c ${HOME}/supervisord.conf
else
exec $@
fi