Fix Hermes cron delivery to Docker profiles
This commit is contained in:
@@ -59,6 +59,31 @@ Container-Images stammen aus den dokumentierten Registries beziehungsweise den
|
|||||||
eigenen Gitea-Repositories. Damit besteht die Wiederherstellung aus
|
eigenen Gitea-Repositories. Damit besteht die Wiederherstellung aus
|
||||||
Appdata-Restore plus Neuerstellung über die jeweilige Template-XML.
|
Appdata-Restore plus Neuerstellung über die jeweilige Template-XML.
|
||||||
|
|
||||||
|
### Hermes Cron/Bot-Chat auf Unraid
|
||||||
|
|
||||||
|
Der offizielle Hermes-Build `0.21.0` mit Upstream-Stand `4b30b917` entfernt im
|
||||||
|
Cron-Zustellprozess fälschlich `HERMES_HOME`. Bei einem Docker-Datenverzeichnis
|
||||||
|
unter `/opt/data` findet `deliver=bot-chat:<profil>` dadurch vorhandene Profile
|
||||||
|
nicht. Bis zur Übernahme des Upstream-Fixes bindet die Unraid-Vorlage dieses
|
||||||
|
idempotente Startskript ein:
|
||||||
|
|
||||||
|
- Host: `/mnt/nvme-storage/appdata/Hermes-Agent/patches/025-cron-profile-root-fix`
|
||||||
|
- Container: `/etc/cont-init.d/025-cron-profile-root-fix` (read-only)
|
||||||
|
- Quelle: `platform/hermes/025-cron-profile-root-fix`
|
||||||
|
|
||||||
|
Das Skript entfernt nur die bekannte fehlerhafte Zeile. Ist sie in einem neuen
|
||||||
|
Image nicht mehr vorhanden, bleibt der Workaround automatisch wirkungslos. Es
|
||||||
|
stellt außerdem `/usr/local/bin/hermes` wieder her, weil der offizielle
|
||||||
|
Container den vom eigenen Doctor erwarteten CLI-Link derzeit nicht anlegt.
|
||||||
|
|
||||||
|
Nach einem Restore die Datei mit Modus `0755` ins Appdata kopieren, den Mount in
|
||||||
|
der DockerMan-Vorlage kontrollieren und den Container neu erstellen. Prüfung:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker logs Hermes-Agent 2>&1 | grep cron-profile-root-fix
|
||||||
|
docker exec Hermes-Agent hermes cron doctor
|
||||||
|
```
|
||||||
|
|
||||||
## Kontrolle
|
## Kontrolle
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
target=/opt/hermes/cron/scheduler_delivery.py
|
||||||
|
broken='env.pop("HERMES_HOME", None)'
|
||||||
|
|
||||||
|
if [ -f "$target" ] && grep -Fq "$broken" "$target"; then
|
||||||
|
sed -i '/^[[:space:]]*env\.pop("HERMES_HOME", None)[[:space:]]*$/d' "$target"
|
||||||
|
echo "[cron-profile-root-fix] preserved HERMES_HOME for named-profile delivery"
|
||||||
|
else
|
||||||
|
echo "[cron-profile-root-fix] upstream code already fixed or layout changed; no action"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cli_dir="${HERMES_HOME:-/opt/data}/.local/bin"
|
||||||
|
mkdir -p "$cli_dir"
|
||||||
|
ln -sfn /opt/hermes/.venv/bin/hermes "$cli_dir/hermes"
|
||||||
|
ln -sfn /opt/hermes/.venv/bin/hermes /usr/local/bin/hermes
|
||||||
Reference in New Issue
Block a user