added varnish cache

This commit is contained in:
2021-04-05 02:58:09 +02:00
parent 8df5d984e0
commit 8976930c8a
2 changed files with 100 additions and 0 deletions

14
varnish-cache/Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
FROM centos:7
RUN yum update -y && yum install -y curl
RUN yum install -y epel-release
RUN curl -s https://packagecloud.io/install/repositories/varnishcache/varnish66/script.rpm.sh | bash
RUN yum install -y varnish
RUN yum install -y bind-utils
RUN yum clean all
COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,86 @@
#!/bin/bash
if [[ (! -z "${VARNISH_DAEMON_USER}" ) && ( "${VARNISH_DAEMON_USER}" != "root" ) ]]; then
useradd -r -s /bin/false $VARNISH_DAEMON_USER
if [[ ! -z "${VARNISH_DAEMON_USER_UID}" ]]; then
usermod -u $VARNISH_DAEMON_USER_UID $VARNISH_DAEMON_USER
fi
if [[ ! -z "${VARNISH_DAEMON_USER_GID}" ]]; then
groupmod -g $VARNISH_DAEMON_USER_GID $VARNISH_DAEMON_USER
fi
fi
if [[ ! -z "${VARNISH_DAEMON_USER}" ]]; then
chown -R $(id -u ${VARNISH_DAEMON_USER}):$(id -g ${VARNISH_DAEMON_USER}) /var/lib/varnish
setcap 'cap_net_bind_service=+ep' /usr/sbin/varnishd
fi
if [[ (! -z "${HOSTNAMESTOCHECK}" ) ]]; then
if [[ ! -z "${VARNISH_DAEMON_USER}" ]]; then
runuser -u ${VARNISH_DAEMON_USER} -- varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@" &
else
varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@" &
fi
declare -A HOSTNAMESIP
IFS="," read -a HOSTNAMESTOCHECKARRAY <<< "${HOSTNAMESTOCHECK}"
for HOST in "${HOSTNAMESTOCHECKARRAY[@]}"
do
HOSTIP=`dig +short $HOST`
HOSTIP=`echo "$HOSTIP" | tr ' ' '\n' | sort | tr '\n' ' '`
HOSTNAMESIP[$HOST]=$HOSTIP
echo IP FOR $HOST $HOSTIP
done
sleep 10
while true
do
IPCHANGED=0
for HOST in "${HOSTNAMESTOCHECKARRAY[@]}"
do
NEWHOSTIP=`dig +short $HOST`
NEWHOSTIP=`echo "$NEWHOSTIP" | tr ' ' '\n' | sort | tr '\n' ' '`
OLDHOSTIP=${HOSTNAMESIP[$HOST]}
if [ "$NEWHOSTIP" != "$OLDHOSTIP" ]; then
if [ "$IPCHANGED" = 0 ]; then
IPCHANGED=1
fi
HOSTNAMESIP[$HOST]=$NEWHOSTIP
echo NEW IP FOR $HOST $NEWHOSTIP
fi
done
if [ "$IPCHANGED" = 1 ]; then
if [[ `ps -acx|grep varnishd|wc -l` > 0 ]]; then
echo "RELOADING VARNISH"
TIME=$(date +%s)
varnishadm -S /run/secrets/varnish_password -T localhost:6082 vcl.load varnish_$TIME /etc/varnish/default.vcl
varnishadm -S /run/secrets/varnish_password -T localhost:6082 vcl.use varnish_$TIME
else
echo "RESTARTING VARNISH"
if [[ ! -z "${VARNISH_DAEMON_USER}" ]]; then
runuser -u ${VARNISH_DAEMON_USER} -- varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@" &
else
varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@" &
fi
fi
fi
sleep 10
done
else
if [[ ! -z "${VARNISH_DAEMON_USER}" ]]; then
runuser -u ${VARNISH_DAEMON_USER} -- varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@"
else
varnishd -F -T localhost:6082 -f /etc/varnish/default.vcl -S /run/secrets/varnish_password "$@"
fi
fi