Deployment reparieren: git safe.directory und Schreibrechte fuer www-data

Der Webhook lief, brach aber sofort ab:

    fatal: detected dubious ownership in repository at '/var/www/html'

Das Repo gehoert einem anderen Benutzer als dem, unter dem PHP-FPM
laeuft. Git verweigert daraufhin jede Operation, und weil deploy.php
die Schritte mit && verkettet, wurde hugo nie erreicht. Auf main
gepushte Aenderungen gingen deshalb nie live - die Seite zeigte immer
den Stand des letzten Containerstarts, weil nur der Entrypoint als
root gebaut hat.

Der Entrypoint traegt jetzt systemweit safe.directory fuer das Repo
und das Theme-Submodule ein und uebergibt das Verzeichnis an www-data,
damit git pull und der hugo-Build tatsaechlich schreiben koennen.

Greift erst nach einem Neubau des Containers - der laufende Container
kann sich nicht selbst reparieren.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-30 23:40:24 +02:00
parent 4420b26752
commit 266333069b

View File

@@ -5,6 +5,15 @@ set -e
PHP_FPM=$(find /usr/sbin -name 'php-fpm*' | head -1) PHP_FPM=$(find /usr/sbin -name 'php-fpm*' | head -1)
$PHP_FPM $PHP_FPM
# deploy.php laeuft als www-data, das Repo gehoert einem anderen Benutzer.
# Ohne diese Ausnahme bricht git mit "detected dubious ownership" ab und die
# &&-Kette in deploy.php erreicht hugo nie. --system gilt fuer alle Benutzer.
git config --system --add safe.directory /var/www/html
git config --system --add safe.directory /var/www/html/themes/gokarna
# www-data muss ins Repo schreiben koennen (git pull, hugo nach public/).
chown -R www-data:www-data /var/www/html || true
# Initial Hugo build # Initial Hugo build
cd /var/www/html cd /var/www/html
git submodule update --init --recursive git submodule update --init --recursive