-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstart-server.sh
58 lines (50 loc) · 1.65 KB
/
start-server.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
#!/usr/bin/env bash
# Migrate the Database
python3 manage.py migrate
status=$?
if [ $status -ne 0 ]; then
echo "Failed to migrate Django DB: $status"
exit $status
fi
# Create Django superuser
if [ -n "$DJANGO_SUPERUSER_EMAIL" ] && [ -n "$DJANGO_SUPERUSER_PASSWORD" ] ; then
python3 manage.py createsuperuser --no-input
status=$?
if [ $status -ne 0 ]; then
echo "Failed to create superuser: $status"
exit $status
fi
fi
# Collect static files
python3 manage.py collectstatic
status=$?
if [ $status -ne 0 ]; then
echo "Failed to collect Static files: $status"
exit $status
fi
# Load model fixtures
python manage.py loaddata app/fixtures/*
status=$?
if [ $status -ne 0 ]; then
echo "Failed to load models fixtures: $status"
exit $status
fi
# Start Gunicorn and NGINX Servers
(gunicorn webapp.wsgi --bind 0.0.0.0:8010 --workers 3) & nginx -g "daemon off;"
# Naive check runs checks once a minute to see if either of the processes exited.
# This illustrates part of the heavy lifting you need to do if you want to run
# more than one service in a container. The container exits with an error
# if it detects that either of the processes has exited.
# Otherwise it loops forever, waking up every 60 seconds
# while sleep 60; do
# ps aux |grep my_first_process |grep -q -v grep
# PROCESS_1_STATUS=$?
# ps aux |grep my_second_process |grep -q -v grep
# PROCESS_2_STATUS=$?
# # If the greps above find anything, they exit with 0 status
# # If they are not both 0, then something is wrong
# if [ $PROCESS_1_STATUS -ne 0 -o $PROCESS_2_STATUS -ne 0 ]; then
# echo "One of the processes has already exited."
# exit 1
# fi
# done