-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathentry_point.sh
More file actions
executable file
·90 lines (78 loc) · 1.91 KB
/
entry_point.sh
File metadata and controls
executable file
·90 lines (78 loc) · 1.91 KB
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
#!/bin/bash
get_env_vars() {
var_list=$( printenv | cut -d= -f1 )
for v in $var_list
do
echo \$$v
done
}
replace_conf_file() {
replace_conf_file_user $1 nginx
}
replace_conf_file_user() {
sudo -u $2 cat $1 > /tmp/template.tmp
envsubst "$( get_env_vars )" < /tmp/template.tmp > "/etc/nginx/conf.d/default.conf"
echo "Vars of /etc/nginx/conf.d/default.conf replaced:"
cat "/etc/nginx/conf.d/default.conf"
echo ""
rm /tmp/template.tmp
}
get_resolver() {
dns_server=$( cat /etc/resolv.conf | grep nameserver | head -1 | cut "-d " -f2 )
echo $dns_server
}
if [ -z "$NGINX_UID" ]
then
echo "WARNING: Not changing nginx UID"
else
usermod --non-unique --uid $NGINX_UID nginx
fi
if [ -z "$NGINX_GID" ]
then
echo "WARNING: Not changing nginx GID"
else
groupmod --non-unique --gid $NGINX_GID nginx
fi
if [ -z "$NGINX_SERVER_NAME" ]
then
export NGINX_SERVER_NAME="localhost"
fi
if [ -z "$NGINX_DNS_SERVER" ]
then
export NGINX_DNS_SERVER=$( get_resolver )
fi
template_file="/conf.d/default.conf.tmplt.cert"
template_file_fallback="/conf.d/default.conf.tmplt.fallback"
ls /etc/letsencrypt/cli.ini > 0
if [ $? -ne 0 ]
then
echo "Basic files are missing, copying initial file."
cp "/cli.ini" "/etc/letsencrypt/cli.ini"
fi
ls /etc/letsencrypt/live/${NGINX_SERVER_NAME}/fullchain.pem
if [ $? -ne 0 ]
then
echo "Certs not present, using template without Certs"
template_file="/default.conf.tmplt"
fi
replace_conf_file "${template_file}"
service cron start
if [ $template_file = "/default.conf.tmplt" ]
then
echo "Attempting to create certs with letsencrypt"
nginx
sleep 1
./create_cert.sh
exit_code=$?
kill -QUIT $( cat /var/run/nginx.pid )
rm /var/run/nginx.pid
if [ ${exit_code} -eq 0 ]
then
echo "Certificates created successfully, re-launching NGINX"
./entry_point.sh
else
replace_conf_file "${template_file_fallback}"
echo "Certificates not created, launching NGINX without SSL!!"
fi
fi
nginx -g "daemon off;"