Files
michaelschiemer/.archive/docker/nginx/docker-entrypoint.sh

59 lines
1.4 KiB
Bash

#!/bin/sh
set -e
#!/bin/sh
set -e
# Umgebungsvariablen-Substitution in Nginx-Konfiguration
if [ -n "$APP_ENV" ]; then
echo "Setting APP_ENV to: $APP_ENV"
sed -i "s/\${APP_ENV}/$APP_ENV/g" /etc/nginx/conf.d/default.conf
fi
# Warte auf PHP-FPM Container
echo "Waiting for PHP-FPM to be ready..."
while ! nc -z php 9000; do
sleep 1
done
echo "PHP-FPM is ready!"
# SSL-Zertifikate prüfen
if [ ! -f "/var/www/ssl/fullchain.pem" ] || [ ! -f "/var/www/ssl/privkey.pem" ]; then
echo "Warning: SSL certificates not found. HTTPS may not work properly."
fi
# Nginx-Konfiguration testen
echo "Testing Nginx configuration..."
nginx -t
# Nginx starten
echo "Starting Nginx..."
exec "$@"
until nc -z -w 2 php 9000; do
echo "Warte auf PHP-FPM..."
sleep 1
done
# Optional: eigene Umgebungsvariable mit Default setzen
export APP_ENV="${APP_ENV:-production}"
echo "Starte Nginx mit APP_ENV=$APP_ENV"
# Ersetze Platzhalter in temporäre Datei
envsubst '${APP_ENV}' < /etc/nginx/conf.d/default.conf > /tmp/default.conf
# Ersetzte Originalkonfiguration
cp /tmp/default.conf /etc/nginx/conf.d/default.conf
# WICHTIG: Rechte für stdout/stderr anpassen
chmod a+rw /dev/stdout /dev/stderr
# Nginx-Ordner Rechte anpassen
mkdir -p /var/cache/nginx /var/log/nginx
chown -R nginx:nginx /var/cache/nginx /var/log/nginx
# Stelle sicher, dass das SSL-Verzeichnis existiert
mkdir -p /var/www/ssl
# Jetzt kann nginx sicher starten
exec nginx -g 'daemon off;'