diff --git a/CHANGELOG.md b/CHANGELOG.md index 54fb1bd..29084a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ Format in Anlehnung an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/). ## Unreleased +- `update.sh` erzeugt die Container `api` und `sync` bei jedem Update neu. Bisher lief der + `sync`-Prozess nach einem Update mit dem alten Code weiter, schrieb deshalb keinen + Ticket-Ersteller und die rote Fahne am PO (#113) erschien nicht (#115). - Rote Fahne am PO mit der Anzahl offener Tickets externer User (Ersteller weder `fds2610` noch `fds2610-bot`); der Codeberg-Sync speichert dafuer den Ersteller jedes Issues/PRs in der neuen Ticket-Spalte `author` (#113). diff --git a/README_UPDATE.md b/README_UPDATE.md index ec6cb97..35b043a 100644 --- a/README_UPDATE.md +++ b/README_UPDATE.md @@ -11,7 +11,9 @@ aktualisiert. - **`update.sh`** (Projekt-Wurzel) - holt die neueste Version des konfigurierten Branches per `git pull --ff-only`, baut die Docker-Images neu, startet `api`, `web` und `sync` neu und - fuehrt (per Default) die Testsuiten aus. Kann jederzeit auch manuell aufgerufen werden, siehe + fuehrt (per Default) die Testsuiten aus. `api` und `sync` werden dabei immer neu erzeugt + (`--force-recreate`), weil sie den Code nur per Volume einbinden und der langlebige + `sync`-Prozess neuen PHP-Code sonst erst nach einem manuellen Neustart sieht (Issue #115). Kann jederzeit auch manuell aufgerufen werden, siehe Kommentar am Kopf der Datei fuer die Umgebungsvariablen `UPDATE_REMOTE`, `UPDATE_BRANCH`, `UPDATE_RUN_TESTS`. Nach dem Neustart meldet das Skript ein Event "Monitor: Update eingespielt ()" per diff --git a/update.sh b/update.sh index 3511fa7..3e3adf2 100644 --- a/update.sh +++ b/update.sh @@ -95,7 +95,13 @@ else fi log "Starte Dienste neu (api, web, sync)..." -$DOCKER_COMPOSE up -d api web sync +# --force-recreate fuer api und sync: beide mounten ./api nur als Volume, ein reines "up -d" +# laesst die Container daher unveraendert weiterlaufen, sobald Image und Compose-Konfiguration +# gleich bleiben. Der sync-Dienst ist ein einziger langlebiger PHP-Prozess (--watch), der seine +# Klassen einmal geladen hat und neuen Code sonst nie sieht - so schrieb er nach dem Update zu +# Issue #113 weiterhin keinen Ticket-Ersteller und die rote Fahne am PO blieb aus (Issue #115). +$DOCKER_COMPOSE up -d --force-recreate api sync +$DOCKER_COMPOSE up -d web # Meldet das Update als Event (POST /api/v1/events/system, Admin-Key aus der .env). Die API ist # direkt nach "up -d" evtl. noch nicht bereit, daher mehrere Versuche; ein Fehlschlag bricht das