docker-entrypoint.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/bin/bash
  2. if [ "${NGINX_HTTPS_ENABLED}" = "true" ]; then
  3. # Check if the certificate and key files for the specified domain exist
  4. if [ -n "${CERTBOT_DOMAIN}" ] && \
  5. [ -f "/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_FILENAME}" ] && \
  6. [ -f "/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_KEY_FILENAME}" ]; then
  7. SSL_CERTIFICATE_PATH="/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_FILENAME}"
  8. SSL_CERTIFICATE_KEY_PATH="/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_KEY_FILENAME}"
  9. else
  10. SSL_CERTIFICATE_PATH="/etc/ssl/${NGINX_SSL_CERT_FILENAME}"
  11. SSL_CERTIFICATE_KEY_PATH="/etc/ssl/${NGINX_SSL_CERT_KEY_FILENAME}"
  12. fi
  13. export SSL_CERTIFICATE_PATH
  14. export SSL_CERTIFICATE_KEY_PATH
  15. # set the HTTPS_CONFIG environment variable to the content of the https.conf.template
  16. HTTPS_CONFIG=$(envsubst < /etc/nginx/https.conf.template)
  17. export HTTPS_CONFIG
  18. # Substitute the HTTPS_CONFIG in the default.conf.template with content from https.conf.template
  19. envsubst '${HTTPS_CONFIG}' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf
  20. fi
  21. if [ "${NGINX_ENABLE_CERTBOT_CHALLENGE}" = "true" ]; then
  22. ACME_CHALLENGE_LOCATION='location /.well-known/acme-challenge/ { root /var/www/html; }'
  23. else
  24. ACME_CHALLENGE_LOCATION=''
  25. fi
  26. export ACME_CHALLENGE_LOCATION
  27. env_vars=$(printenv | cut -d= -f1 | sed 's/^/$/g' | paste -sd, -)
  28. envsubst "$env_vars" < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf
  29. envsubst "$env_vars" < /etc/nginx/proxy.conf.template > /etc/nginx/proxy.conf
  30. envsubst < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf
  31. # Start Nginx using the default entrypoint
  32. exec nginx -g 'daemon off;'