build: Docker-Setup und Apache-Konfiguration
Apache mit mod_php statt PHP-FPM plus Nginx: dadurch verhalten sich Docker und klassisches Shared Hosting gleich, es gilt dieselbe .htaccess. MariaDB liegt hinter einem Compose-Profil. Die Entwicklungspakete bleiben im Image installiert - beim Aufraeumen mit apt-get purge --auto-remove verschwindet sonst auch die von imagick benoetigte Laufzeitbibliothek. Die .htaccess im Stammverzeichnis wird nur gebraucht, wenn der Webroot nicht auf public/ gelegt werden kann; sie sperrt dann alle uebrigen Verzeichnisse.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
# -------------------------------------------------------------
|
||||
# Startskript des Containers.
|
||||
# Sorgt dafuer, dass die Datenverzeichnisse existieren und dem
|
||||
# Webserver gehoeren - auch wenn ein Volume gemountet wurde.
|
||||
# -------------------------------------------------------------
|
||||
set -e
|
||||
|
||||
mkdir -p /var/www/html/data/uploads
|
||||
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
chown -R www-data:www-data /var/www/html/data 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Wartet kurz auf die Datenbank, falls MySQL/MariaDB genutzt wird.
|
||||
if [ "${DB_DRIVER}" = "mysql" ] && [ -n "${DB_HOST}" ]; then
|
||||
echo "Warte auf Datenbank ${DB_HOST}:${DB_PORT:-3306} ..."
|
||||
i=0
|
||||
while [ "$i" -lt 30 ]; do
|
||||
if php -r '
|
||||
$host = getenv("DB_HOST"); $port = (int) (getenv("DB_PORT") ?: 3306);
|
||||
$fp = @fsockopen($host, $port, $errno, $errstr, 1);
|
||||
exit($fp === false ? 1 : 0);
|
||||
'; then
|
||||
echo "Datenbank erreichbar."
|
||||
break
|
||||
fi
|
||||
i=$((i + 1))
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user