#!/bin/sh # vim:sw=4:ts=4:et # https://github.com/nginxinc/docker-nginx/blob/master/entrypoint/docker-entrypoint.sh # https://github.com/nginxinc/docker-nginx/blob/master/LICENSE # Copyright (C) 2011-2016 Nginx, Inc. # All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. set -e if [ -z "${NGINX_ENTRYPOINT_QUIET_LOGS:-}" ]; then exec 3>&1 else exec 3>/dev/null fi # Really dirty backwards compatible workaround for single server portals: # ======================================================================= # in the past we used to require single server portals not to include # server domain env variable because it messed up with caddy; we switched # to certbot and that is not the case any more but we also switched to # using built in envsubst instead of custom mustache script for nginx # templating and now when server domain is not defined, it messes up whole # nginx config and nginx will not start; this workaround assigns portal # domain as a server domain if server domain is not defined if [ -z "${SERVER_DOMAIN}" ]; then export SERVER_DOMAIN=${PORTAL_DOMAIN} fi if [ "$1" = "nginx" -o "$1" = "nginx-debug" ]; then if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration" echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/" find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do case "$f" in *.sh) if [ -x "$f" ]; then echo >&3 "$0: Launching $f"; "$f" else # warn on shell scripts without exec bit echo >&3 "$0: Ignoring $f, not executable"; fi ;; *) echo >&3 "$0: Ignoring $f";; esac done echo >&3 "$0: Configuration complete; ready for start up" else echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration" fi fi exec "$@"