Validate nginx configuration before reloading nginx. Closes #999
This commit is contained in:
@@ -2,6 +2,17 @@
|
|||||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||||
source "$(dirname $0)/../common/functions"
|
source "$(dirname $0)/../common/functions"
|
||||||
|
|
||||||
|
validate_nginx () {
|
||||||
|
set +e
|
||||||
|
sudo /usr/sbin/nginx -t > /dev/null 2>&1
|
||||||
|
exit_code=$?
|
||||||
|
set -e
|
||||||
|
if [[ "$exit_code" -ne "0" ]]; then
|
||||||
|
sudo /usr/sbin/nginx -t
|
||||||
|
exit "$exit_code"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
restart_nginx () {
|
restart_nginx () {
|
||||||
case "$DOKKU_DISTRO" in
|
case "$DOKKU_DISTRO" in
|
||||||
ubuntu)
|
ubuntu)
|
||||||
@@ -98,6 +109,7 @@ EOF
|
|||||||
pluginhook nginx-pre-reload $APP $DOKKU_APP_LISTEN_PORT $DOKKU_APP_LISTEN_IP
|
pluginhook nginx-pre-reload $APP $DOKKU_APP_LISTEN_PORT $DOKKU_APP_LISTEN_IP
|
||||||
|
|
||||||
dokku_log_verbose "Reloading nginx"
|
dokku_log_verbose "Reloading nginx"
|
||||||
|
validate_nginx
|
||||||
restart_nginx
|
restart_nginx
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,17 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||||
|
|
||||||
if [[ ! -f /etc/sudoers.d/dokku-nginx ]]; then
|
case "$DOKKU_DISTRO" in
|
||||||
case "$DOKKU_DISTRO" in
|
ubuntu)
|
||||||
ubuntu)
|
echo "%dokku ALL=(ALL) NOPASSWD:/etc/init.d/nginx reload, /usr/sbin/nginx -t" > /etc/sudoers.d/dokku-nginx
|
||||||
echo "%dokku ALL=(ALL) NOPASSWD:/etc/init.d/nginx reload" >> /etc/sudoers.d/dokku-nginx
|
;;
|
||||||
;;
|
|
||||||
|
|
||||||
opensuse)
|
opensuse)
|
||||||
echo "%dokku ALL=(ALL) NOPASSWD:/sbin/service nginx reload" >> /etc/sudoers.d/dokku-nginx
|
echo "%dokku ALL=(ALL) NOPASSWD:/sbin/service nginx reload, /usr/sbin/nginx -t" > /etc/sudoers.d/dokku-nginx
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
chmod 0440 /etc/sudoers.d/dokku-nginx
|
chmod 0440 /etc/sudoers.d/dokku-nginx
|
||||||
fi
|
|
||||||
|
|
||||||
# if dokku.conf has not been created, create it
|
# if dokku.conf has not been created, create it
|
||||||
if [[ ! -f /etc/nginx/conf.d/dokku.conf ]]; then
|
if [[ ! -f /etc/nginx/conf.d/dokku.conf ]]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user