-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmongo-bootstrap
executable file
·49 lines (40 loc) · 1.45 KB
/
mongo-bootstrap
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
#! /bin/bash
set -e
MOUNT_POINT=${MOUNT_POINT:?"MOUNT_POINT must be set"}
MONGO_PORT=${MONGO_PORT:-27017}
if [[ "$MONGO_ROLE" != "arbiter" && -e /var/run/convoy ]]; then
while [[ ! -e ${MOUNT_POINT}/convoy.ready ]]; do
echo "Waiting for convoy mount"
sleep 10
done
fi
mkdir -p ${MOUNT_POINT}/db &> /dev/null
chown -R mongodb:mongodb ${MOUNT_POINT}
# Setup shared keyfile
while [[ "$MONGO_REPLSET" != "" && ! -e /etc/mongo/keyfile ]]; do
MONGO_KEYFILE=${MONGO_KEYFILE:?"MONGO_KEYFILE must be set"}
protocol=${MONGO_KEYFILE:0:5}
if [[ "$protocol" == "s3://" ]]; then
aws s3 cp ${MONGO_KEYFILE} /etc/mongo/keyfile || true
if [[ "$MONGO_ROLE" == "primary" && ! -e /etc/mongo/keyfile ]]; then
openssl rand -base64 741 > /etc/mongo/keyfile
aws s3 cp /etc/mongo/keyfile ${MONGO_KEYFILE}
fi
else
cp ${MONGO_KEYFILE} /etc/mongo/keyfile
if [[ "$MONGO_ROLE" == "primary" && ! -e /etc/mongo/keyfile ]]; then
openssl rand -base64 741 > /etc/mongo/keyfile
cp /etc/mongo/keyfile ${MONGO_KEYFILE}
fi
fi
chown -R mongodb:mongodb /etc/mongo/keyfile
chmod 600 /etc/mongo/keyfile
sleep 5
done
# Start init process to setup default accounts
mongo-init &
if [[ "$MONGO_REPLSET" != "" ]]; then
exec dosu mongodb mongod --dbpath ${MOUNT_POINT}/db --port ${MONGO_PORT} --auth --replSet ${MONGO_REPLSET} --keyFile /etc/mongo/keyfile
else
exec dosu mongodb mongod --dbpath ${MOUNT_POINT}/db --port ${MONGO_PORT} --auth
fi