Newer
Older
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
#!/bin/bash
# Default mode
mode="api-dev"
docker="false"
#
# Run Script for AURA Engine API
#
# Call with one of these parameters:
#
# - api-dev
# - api
# - recreate-database
# - docker:recreate-database
# - docker:build
# - docker:push
# - docker:api
#
if [[ $* =~ ^(api-dev|api)$ ]]; then
mode=$1
fi
if [[ "$1" == *"docker:"* ]]; then
docker="true"
mode=${1#*:}
fi
echo "[ Run mode=$mode ]"
echo "[ Docker=$docker ]"
# +++ DEFAULT COMMANDS +++ #
if [[ $docker == "false" ]]; then
### Runs the API Server (Development) ###
if [[ $mode == "api-dev" ]]; then
# echo "Building Web Applications"
# sh ./script/build-web.sh
echo "Starting API Server"
/usr/bin/env python3.7 -m src
fi
### Runs the API Server using Gunicorn without a system daemon (Production) ###
if [[ $mode == "api" ]]; then
echo "Activating Python Environment"
source ../python-env/bin/activate
echo "Starting API Server"
gunicorn -c configuration/gunicorn.conf.py src:app
fi
### CAUTION: This deletes everything in your database ###
if [[ $mode == "recreate-database" ]]; then
/usr/bin/env python3.7 -m src --recreate-database
fi
fi
# +++ DOCKER COMMANDS +++ #
if [[ $docker == "true" ]]; then
BASE_D=$(realpath "${BASH_SOURCE%/*}/")
### Runs Engine API using Gunicorn ###
# if [[ $mode == "api" ]]; then
# exec sudo docker run --name engine-api --rm -it \
# -u $UID:$GID \
# -p 127.0.0.1:8050:5000 \
# -v "$BASE_D":/srv \
# -v "$BASE_D/configuration/":/etc/aura \
# --tmpfs /var/log/aura/ autoradio/engine-api /srv/src/__main__.py \
# --device autoradio/engine-api /bin/bash \
# -c "gunicorn -c configuration/gunicorn.conf.py -m src:app"
# fi
if [[ $mode == "api" ]]; then
exec sudo docker run --name engine-api --rm -it \
-u $UID:$GID \
-p 127.0.0.1:8050:5000 \
-v "$BASE_D":/srv \
-v "$BASE_D/configuration/":/etc/aura \
--tmpfs /var/log/aura/ autoradio/engine-api /srv/src \
--device autoradio/engine /bin/bash
# -c "gunicorn -c configuration/gunicorn.conf.py src/__main__.py:app"
fi
### CAUTION: This deletes everything in your database ###
if [[ $mode == "recreate-database" ]]; then
exec sudo docker run --rm -it \
-u $UID:$GID \
-v "$BASE_D":/srv \
-v "$BASE_D/configuration/":/etc/aura \
--tmpfs /var/log/aura/ autoradio/engine-api /srv/src --recreate-database
fi
### Create Docker Image from local project ###
if [[ $mode == "build" ]]; then
exec sudo docker build -t autoradio/engine-api .
fi
### Pushes the latest Docker Image to Docker Hub ###
if [[ $mode == "push" ]]; then
exec sudo docker push autoradio/engine-api
fi
fi