Docker/run-apache.sh
Rama master · réplica de lectura del repositorio original.
#!/bin/bash
export CONTAINERROLE=":${CONTAINERROLE:-all}:"
export DEBIAN_FRONTEND=noninteractive
export DA_ROOT="${DA_ROOT:-/usr/share/docassemble}"
export DA_DEFAULT_LOCAL="local3.14"
export DA_ACTIVATE="${DA_PYTHON:-${DA_ROOT}/${DA_DEFAULT_LOCAL}}/bin/activate"
export DA_CONFIG_FILE="${DA_CONFIG:-${DA_ROOT}/config/config.yml}"
source /dev/stdin < <(su -c "source \"$DA_ACTIVATE\" && python -m docassemble.base.read_config \"$DA_CONFIG_FILE\"" www-data)
set -- $LOCALE
export LANG=$1
if [[ $(dpkg --print-architecture) == "amd64" ]]; then
CURRENTARCH=x86_64
else
CURRENTARCH=aarch64
fi
if [ "${DAHOSTNAME:-none}" == "none" ]; then
if [ "${EC2:-false}" == "true" ]; then
export LOCAL_HOSTNAME=`curl -s http://169.254.169.254/latest/meta-data/local-hostname`
export PUBLIC_HOSTNAME=`curl -s http://169.254.169.254/latest/meta-data/public-hostname`
else
export LOCAL_HOSTNAME=`hostname --fqdn`
export PUBLIC_HOSTNAME="${LOCAL_HOSTNAME}"
fi
export DAHOSTNAME="${PUBLIC_HOSTNAME}"
fi
if [ "${BEHINDHTTPSLOADBALANCER:-false}" == "true" ]; then
a2enmod remoteip
a2enconf docassemble-behindlb
else
a2dismod remoteip
a2disconf docassemble-behindlb
fi
echo -e "# This file is automatically generated" > /etc/apache2/conf-available/docassemble.conf
echo -e "LoadModule wsgi_module ${DA_PYTHON:-${DA_ROOT}/${DA_DEFAULT_LOCAL}}/lib/python3.14/site-packages/mod_wsgi/server/mod_wsgi-py314.cpython-314-${CURRENTARCH}-linux-gnu.so" >> /etc/apache2/conf-available/docassemble.conf
echo -e "WSGIPythonHome ${DA_PYTHON:-${DA_ROOT}/${DA_DEFAULT_LOCAL}}" >> /etc/apache2/conf-available/docassemble.conf
echo -e "Timeout ${DATIMEOUT:-60}\nDefine DAHOSTNAME ${DAHOSTNAME}\nDefine DAPOSTURLROOT ${POSTURLROOT}\nDefine DAWSGIROOT ${WSGIROOT}\nDefine DASERVERADMIN ${SERVERADMIN}\nDefine DAWEBSOCKETSIP ${DAWEBSOCKETSIP:-127.0.0.1}\nDefine DAWEBSOCKETSPORT ${DAWEBSOCKETSPORT}\nDefine DACROSSSITEDOMAINVALUE *\nDefine DALISTENPORT ${PORT:-80}" >> /etc/apache2/conf-available/docassemble.conf
echo "Listen ${PORT:-80}" > /etc/apache2/ports.conf
if [ "${BEHINDHTTPSLOADBALANCER:-false}" == "true" ]; then
echo "Listen 8081" >> /etc/apache2/ports.conf
a2ensite docassemble-redirect
fi
if [ "${USEHTTPS:-false}" == "true" ]; then
echo "Listen 443" >> /etc/apache2/ports.conf
a2enmod ssl
a2ensite docassemble-ssl
else
a2dismod ssl
a2dissite -q docassemble-ssl &> /dev/null
fi
if [[ $CONTAINERROLE =~ .*:(log):.* ]]; then
echo "Listen 8080" >> /etc/apache2/ports.conf
fi
function stopfunc {
echo "Sending stop command"
/usr/sbin/apache2ctl stop
echo "Waiting for apache to stop"
while pgrep apache2 > /dev/null; do sleep 1; done
echo "Apache stopped"
exit 0
}
trap stopfunc SIGINT SIGTERM
/usr/sbin/apache2ctl -DFOREGROUND &
wait %1