-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstart.sh
executable file
·69 lines (53 loc) · 1.55 KB
/
start.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
68
69
set -euo pipefail
display_info() {
printf "Usage ./start.sh [OPT]\nOptions are:\n"
printf " -h: Show this message\n"
printf " -m: Migrate\n"
printf " -s: Seed\n"
printf " -p: Port to listen\n"
exit 0
}
SEED=false
MIGRATE=false
PORT=9090
while getopts "mshp:" OPT; do
case "$OPT" in
"m") MIGRATE=true;;
"s") SEED=true;;
"p") PORT=$OPTARG;;
"h") display_info;;
"?") display_info;;
esac
done
docker network create hermes || true
SCRIPT=$(readlink -f $0)
SCRIPTPATH=`dirname $SCRIPT`
echo "PORT=$PORT" > $SCRIPTPATH/.env
DOCKER_COMPOSE_OPTS="-p hermes -f prod.docker-compose.yml"
docker-compose $DOCKER_COMPOSE_OPTS pull --no-parallel
printf "\n"
docker pull hermeshub/db-migrator
printf "\n"
if [ "$MIGRATE" == "true" ] || [ "$SEED" == "true" ]; then
docker-compose $DOCKER_COMPOSE_OPTS up -d function-registry-db
if [ "$MIGRATE" == "true" ]; then
docker run --network=hermes --rm -it hermeshub/db-migrator ./scripts/migrate.sh production
fi
if [ "$SEED" == "true" ]; then
docker run --network=hermes --rm -it hermeshub/db-migrator ./scripts/seed.sh production
fi
docker-compose $DOCKER_COMPOSE_OPTS down
fi
docker-compose $DOCKER_COMPOSE_OPTS up -d
printf "\n"
WAIT_FOR_IT_PATH="$SCRIPTPATH/wait_for_it.tmp"
HOST_PORT="localhost:$PORT"
if [ ! -f "$WAIT_FOR_IT_PATH" ]; then
curl https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh --output $WAIT_FOR_IT_PATH
chmod +x $WAIT_FOR_IT_PATH
fi
$WAIT_FOR_IT_PATH $HOST_PORT -s || {
printf "Error initializing\n "
exit 1
}
echo "Done"