docker-entrypoint.sh 1.8 KB

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