update.sh: api und sync bei jedem Update neu erzeugen (#115)
Die rote Fahne aus #113 blieb nach dem automatischen Update aus. Code-Pfad und Daten sind in Ordnung (NC-Gantt #333 ist offen und stammt von "tinko"), aber der sync-Container bindet ./api nur als Volume ein. Bei unveraendertem Image und unveraenderter Compose-Konfiguration liess "docker compose up -d" ihn deshalb einfach weiterlaufen. Der --watch-Prozess hatte seine Klassen noch vom alten Stand geladen, uebergab also nie einen author, und countExternalOpenTickets() kam immer auf 0. update.sh erzeugt api und sync deshalb jetzt mit --force-recreate neu. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
41a11a0a73
commit
e8d19534a6
3 changed files with 13 additions and 2 deletions
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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 (<Commit>)" per
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue