Version aus EspoCRM selbst lesen statt aus den Vorgaben des Images
ESPO-03, ESPO-10, ESPO-12 und ESPO-20 lasen version aus defaults/config.php, config.php und config-internal.php. EspoCRM 10 fuehrt version aber als State-Parameter in data/state.php, und Config::load() liest die Image-Vorgaben gar nicht. Gemeldet wurde also der Vorgabewert des Images: nach einem gescheiterten migrate die neue Version, obwohl die Instanz auf der alten steht. Jetzt fragen die Skripte EspoCRM ueber "command.php version" - derselbe Wert, gegen den auch Extensions ihre acceptableVersions pruefen. Aufruf als www-data mit absolutem Pfad (bootstrap.php wechselt selbst ins Installationsverzeichnis); akzeptiert wird nur eine Zeile der Form 1.2.3, damit eine PHP-Warnung nie als Version in ein Custom Field geraet. Die grep-Rueckfallwege auf config.php entfallen, sie lasen dieselbe falsche Quelle. Probe gegen die Integrationsinstanz 10.0.8: Ausgabe "10.0.8". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
815e197dea
commit
b18633281d
@ -7,7 +7,7 @@
|
||||
set -u
|
||||
|
||||
# Standzeile: zeigt im Protokoll, welche Fassung tatsaechlich gelaufen ist.
|
||||
echo "ESPO-03-First-Deploy, Skriptstand 2026-09-24"
|
||||
echo "ESPO-03-First-Deploy, Skriptstand 2026-09-29"
|
||||
|
||||
BASIS_URL=https://gitea.subcura.net/EspoCRM_Public/espo-deploy/raw/branch/main
|
||||
WARTE_MAX=900
|
||||
@ -95,10 +95,9 @@ echo "--- Container"
|
||||
docker compose -f /srv/espo/docker-compose.yml ps --format 'table {{.Name}}\t{{.Status}}'
|
||||
echo "--- Instanz"
|
||||
echo "FQDN: $FQDN (Ring $RING)"
|
||||
# Die Version steht je nach Stand in config.php oder in config-internal.php - EspoCRM selbst
|
||||
# fragen ist verlaesslicher als eine der beiden Dateien zu raten.
|
||||
VERSION="$(docker exec espocrm php -r '$v=""; foreach (["/var/www/html/application/Espo/Resources/defaults/config.php","/var/www/html/data/config.php","/var/www/html/data/config-internal.php"] as $f) { $a=@include $f; if (is_array($a) && !empty($a["version"])) { $v=$a["version"]; } } echo $v;' 2>/dev/null)"
|
||||
[ -n "$VERSION" ] || VERSION="$(grep -hoP "['\"]version['\"]\s*=>\s*['\"]\K[^'\"]+" /srv/espo/data/config.php /srv/espo/data/config-internal.php 2>/dev/null | head -1)"
|
||||
# Version so, wie EspoCRM sie selbst fuehrt: seit v10 in data/state.php, nicht in config.php.
|
||||
# Der Befehl liest genau den Wert, gegen den auch Extensions ihre acceptableVersions pruefen.
|
||||
VERSION="$(docker exec -u www-data espocrm php /var/www/html/command.php version 2>/dev/null | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' | tail -n 1)"
|
||||
echo "Version: ${VERSION:-unbekannt}"
|
||||
IMAGE="$(docker inspect -f '{{.Config.Image}}' espocrm 2>/dev/null)"
|
||||
echo "Image: $IMAGE"
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
set -u
|
||||
|
||||
# Standzeile: zeigt im Protokoll, welche Fassung tatsaechlich gelaufen ist.
|
||||
echo "ESPO-10-Update, Skriptstand 2026-09-24"
|
||||
echo "ESPO-10-Update, Skriptstand 2026-09-29"
|
||||
|
||||
BASIS_URL=https://gitea.subcura.net/EspoCRM_Public/espo-deploy/raw/branch/main
|
||||
VG=ubuntu-vg
|
||||
@ -55,7 +55,7 @@ fi
|
||||
|
||||
# 3. Ausgangsstand festhalten, damit der Bericht ein Vorher und ein Nachher hat.
|
||||
VORHER_IMAGE="$(docker inspect -f '{{.Config.Image}}' espocrm 2>/dev/null)"
|
||||
VORHER_VERSION="$(docker exec espocrm php -r '$v=""; foreach (["/var/www/html/application/Espo/Resources/defaults/config.php","/var/www/html/data/config.php","/var/www/html/data/config-internal.php"] as $f) { $a=@include $f; if (is_array($a) && !empty($a["version"])) { $v=$a["version"]; } } echo $v;' 2>/dev/null)"
|
||||
VORHER_VERSION="$(docker exec -u www-data espocrm php /var/www/html/command.php version 2>/dev/null | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' | tail -n 1)"
|
||||
VORHER_ESPO_ID="$(docker inspect -f '{{.Image}}' espocrm 2>/dev/null)"
|
||||
VORHER_DB_ID="$(docker inspect -f '{{.Image}}' espocrm-db 2>/dev/null)"
|
||||
VORHER_DB_IMAGE="$(docker inspect -f '{{.Config.Image}}' espocrm-db 2>/dev/null)"
|
||||
@ -103,7 +103,7 @@ docker compose -f /srv/espo/docker-compose.yml ps --format 'table {{.Name}}\t{{.
|
||||
echo "--- Instanz"
|
||||
NACHHER_IMAGE="$(docker inspect -f '{{.Config.Image}}' espocrm 2>/dev/null)"
|
||||
NACHHER_ESPO_ID="$(docker inspect -f '{{.Image}}' espocrm 2>/dev/null)"
|
||||
NACHHER_VERSION="$(docker exec espocrm php -r '$v=""; foreach (["/var/www/html/application/Espo/Resources/defaults/config.php","/var/www/html/data/config.php","/var/www/html/data/config-internal.php"] as $f) { $a=@include $f; if (is_array($a) && !empty($a["version"])) { $v=$a["version"]; } } echo $v;' 2>/dev/null)"
|
||||
NACHHER_VERSION="$(docker exec -u www-data espocrm php /var/www/html/command.php version 2>/dev/null | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' | tail -n 1)"
|
||||
echo "Image: ${VORHER_IMAGE:-unbekannt} -> ${NACHHER_IMAGE:-unbekannt}"
|
||||
echo "Version: ${VORHER_VERSION:-unbekannt} -> ${NACHHER_VERSION:-unbekannt}"
|
||||
echo "Digest: $(docker image inspect --format '{{if .RepoDigests}}{{index .RepoDigests 0}}{{else}}{{.Id}}{{end}}' "$NACHHER_IMAGE" 2>/dev/null)"
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
# mit dem alten Image-Tag. Deshalb startet die Instanz danach von selbst wieder auf dem alten Stand.
|
||||
set -u
|
||||
|
||||
echo "ESPO-12-Snapshot-wiederherstellen, Skriptstand 2026-09-24"
|
||||
echo "ESPO-12-Snapshot-wiederherstellen, Skriptstand 2026-09-29"
|
||||
|
||||
VG=ubuntu-vg
|
||||
SNAPSHOT=srv-vor-update
|
||||
@ -109,7 +109,7 @@ docker compose -f "$COMPOSE" ps --format 'table {{.Name}}\t{{.Status}}'
|
||||
echo "--- Instanz nach dem Rueckweg"
|
||||
IMAGE="$(docker inspect -f '{{.Config.Image}}' espocrm 2>/dev/null)"
|
||||
echo "Image: $IMAGE"
|
||||
echo "Version: $(docker exec espocrm php -r '$v=""; foreach (["/var/www/html/application/Espo/Resources/defaults/config.php","/var/www/html/data/config.php","/var/www/html/data/config-internal.php"] as $f) { $a=@include $f; if (is_array($a) && !empty($a["version"])) { $v=$a["version"]; } } echo $v;' 2>/dev/null)"
|
||||
echo "Version: $(docker exec -u www-data espocrm php /var/www/html/command.php version 2>/dev/null | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' | tail -n 1)"
|
||||
echo "--- Platz"
|
||||
vgs --units g -o vg_name,vg_size,vg_free "$VG" 2>/dev/null | sed 's/^/ /'
|
||||
echo "--- Hinweis"
|
||||
|
||||
@ -12,7 +12,7 @@ set -u
|
||||
|
||||
ZIEL=/run/espo-inventar
|
||||
|
||||
echo "ESPO-20-Inventar, Skriptstand 2026-09-24"
|
||||
echo "ESPO-20-Inventar, Skriptstand 2026-09-29"
|
||||
|
||||
fehler() { echo "FEHLER: $*"; echo "ESPO20_ERGEBNIS: FEHLER"; exit 1; }
|
||||
|
||||
@ -29,8 +29,7 @@ ESPO_IMAGE="$(docker inspect -f '{{.Config.Image}}' espocrm 2>/dev/null)"
|
||||
[ -n "$ESPO_IMAGE" ] || fehler "Container 'espocrm' nicht gefunden - laeuft die Instanz?"
|
||||
ESPO_DIGEST="$(docker image inspect --format '{{if .RepoDigests}}{{index .RepoDigests 0}}{{else}}{{.Id}}{{end}}' "$ESPO_IMAGE" 2>/dev/null)"
|
||||
[ -n "$ESPO_DIGEST" ] || fehler "Digest des EspoCRM-Images nicht ermittelbar"
|
||||
ESPO_VERSION="$(docker exec espocrm php -r '$v=""; foreach (["/var/www/html/application/Espo/Resources/defaults/config.php","/var/www/html/data/config.php","/var/www/html/data/config-internal.php"] as $f) { $a=@include $f; if (is_array($a) && !empty($a["version"])) { $v=$a["version"]; } } echo $v;' 2>/dev/null)"
|
||||
[ -n "$ESPO_VERSION" ] || ESPO_VERSION="$(grep -hoP "['\"]version['\"]\s*=>\s*['\"]\K[^'\"]+" /srv/espo/data/config-internal.php /srv/espo/data/config.php 2>/dev/null | head -1)"
|
||||
ESPO_VERSION="$(docker exec -u www-data espocrm php /var/www/html/command.php version 2>/dev/null | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' | tail -n 1)"
|
||||
[ -n "$ESPO_VERSION" ] || fehler "EspoCRM-Version nicht ermittelbar"
|
||||
|
||||
# 3. MariaDB: Image, Digest, Version. Das Passwort wird im Container aus der Secret-Datei gelesen,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user