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>
24 lines
714 B
Bash
24 lines
714 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Start PHP-FPM
|
|
PHP_FPM=$(find /usr/sbin -name 'php-fpm*' | head -1)
|
|
$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
|
|
cd /var/www/html
|
|
git submodule update --init --recursive
|
|
hugo
|
|
|
|
# Start nginx in foreground
|
|
nginx -g 'daemon off;'
|