forked from microrealestate/microrealestate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmre
executable file
·136 lines (124 loc) · 3.37 KB
/
mre
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/bash
# PROD_COMPOSE_FILES=("monitoring" "microservices.base" "microservices.prod")
PROD_COMPOSE_FILES=("microservices.base" "microservices.prod")
DEV_COMPOSE_FILES=("microservices.base" "microservices.dev")
prod_compose_files_argument=$(printf " -f ./docker-compose.%s.yml" "${PROD_COMPOSE_FILES[@]}")
dev_compose_files_argument=$(printf " -f ./docker-compose.%s.yml" "${DEV_COMPOSE_FILES[@]}")
# environment variables are in *.env files
initEnv() {
if test -f "$1"; then
while read LINE; do
if [[ $LINE != \#* ]] && [[ $LINE != "" ]];
then
eval "export $LINE"
fi
done < $1
fi
}
configDev() {
echo "checking dev config..."
docker-compose $dev_compose_files_argument config
}
configProd() {
echo "checking prod config..."
docker-compose $prod_compose_files_argument config
}
dev() {
echo "Starting microrealestate..."
docker-compose $dev_compose_files_argument rm --stop --force
docker-compose $dev_compose_files_argument up --build --remove-orphans
}
status() {
docker-compose $prod_compose_files_argument ps
}
build() {
echo "Building microrealestate $1..."
docker-compose $prod_compose_files_argument rm --stop --force $1
docker-compose $prod_compose_files_argument build --no-cache $1
}
start() {
echo "Starting microrealestate $1..."
# if [ ! -d ./data/elasticsearch ]; then
# mkdir -p ./data/elasticsearch;
# fi
if [ ! -d ./data/mongodb ]; then
mkdir -p ./data/mongodb;
fi
if [ -n "$1" ]; then
docker-compose $prod_compose_files_argument up -d $1 # > /dev/null
else
docker-compose $prod_compose_files_argument up -d --force-recreate --remove-orphans # > /dev/null
fi
local res=$?;
if [ $res -ne 0 ]; then
stop
echo "ERROR: Fail to start microrealestate $1" >&2
else
if [ -z "$1" ]; then
status
echo ""
echo "Front-end http://localhost:$NGINX_PORT/app"
echo "Deprecated Front-end http://localhost:$NGINX_PORT"
# echo "kibana http://localhost:$KIBANA_PORT"
# echo "cadvisor http://localhost:$CADVISOR_PORT"
# echo "rabbitmq Management http://localhost:$RABBITMQ_MANAGEMENT_PORT"
fi
fi
return $res
}
stop() {
echo "Stopping microrealestate $1..."
docker-compose $prod_compose_files_argument rm -sf $1 > /dev/null
}
display_help() {
echo "Usage: $0 [option...] {dev|build|status|start|stop|restart|config-dev|config-prod}" >&2
}
case "$1" in
config-dev)
initEnv dev.env
initEnv .env
configDev;;
config-prod)
initEnv prod.env
initEnv .env
configProd;;
dev)
initEnv dev.env
initEnv .env
dev
;;
status)
initEnv prod.env
initEnv .env
status
;;
build)
initEnv prod.env
initEnv .env
build $2
;;
start)
initEnv prod.env
initEnv .env
start $2
;;
stop)
initEnv prod.env
initEnv .env
stop $2
;;
restart)
initEnv prod.env
initEnv .env
stop $2
start $2
;;
-h | --help)
display_help
exit 0
;;
*)
display_help
exit 1
;;
esac