-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathstart.sh
executable file
·71 lines (57 loc) · 1.64 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
70
71
#!/bin/sh
echo "Setting up and starting varnish"
set -x
pid=0
pid2=0
# SIGTERM-handler
term_handler() {
if [ $pid -ne 0 ]; then
kill -SIGTERM "$pid"
wait "$pid"
fi
if [ $pid2 -ne 0 ]; then
kill -SIGTERM "$pid2"
wait "$pid2"
fi
exit 143; # 128 + 15 -- SIGTERM
}
# setup handlers
# on callback, kill the last background process, which is `tail -f /dev/null` and execute the specified handler
trap 'kill ${!}; term_handler' SIGTERM
# Convert environment variables in the conf to fixed entries
# http://stackoverflow.com/questions/21056450/how-to-inject-environment-variables-in-varnish-configuration
for name in VARNISH_BACKEND_PORT VARNISH_BACKEND_IP
do
eval value=\$$name
sed -i "s|\${${name}}|${value}|g" /etc/varnish/default.vcl
done
# echo "varnishd -a 0.0.0.0:${VARNISH_PORT} -b ${VARNISH_BACKEND_IP}:${VARNISH_BACKEND_PORT}"
# varnishd -a 0.0.0.0:${VARNISH_PORT} -b ${VARNISH_BACKEND_IP}:${VARNISH_BACKEND_PORT}
sleep ${VARNISH_D_DELAY:=10}
curl $VARNISH_BACKEND_IP:$VARNISH_BACKEND_PORT
# Ensure VARNISH_ADMIN_IP is defined.
if [ -z "$VARNISH_ADMIN_IP" ]; then
VARNISH_ADMIN_IP="localhost";
fi
# Ensure VARNISH_ADMIN_PORT is defined.
if [ -z "$VARNISH_ADMIN_PORT" ]; then
VARNISH_ADMIN_PORT="6082";
fi
echo "starting varnishd"
varnishd -f /etc/varnish/default.vcl \
-s malloc,100M \
-a 0.0.0.0:${VARNISH_PORT} \
-T $VARNISH_ADMIN_IP:$VARNISH_ADMIN_PORT \
-F -p cli_timeout=60 -p connect_timeout=60 &
pid="$!"
sleep 5
if [ ${VARNISH_LOG:=0} -eq 1 ]; then
echo "Starting log to console"
varnishlog &
pid2="$!"
fi
# wait indefinetely
while true
do
tail -f /dev/null & wait ${!}
done