Merge pull request #338 from MacRimi/fix/pr337-docker-update-hardening

Fix Docker app version tracking, cache consistency and delegated updates
This commit is contained in:
MacRimi
2026-09-05 17:02:08 +02:00
committed by GitHub
17 changed files with 668 additions and 92 deletions
+7
View File
@@ -1239,6 +1239,8 @@
"custom": "Benutzerdefinierte Cron…"
},
"updates": {
"updatedWithDockerImage": "Wird zusammen mit dem Docker-Image aktualisiert.",
"dockerBindingUnavailable": "Noch kein Image zugeordnet. Prüfen Sie den Containernamen und aktualisieren Sie das Image-Inventar.",
"osPackagesTitle": "Betriebssystempakete",
"lastCheckedPrefix": "Zuletzt überprüft:",
"familyLabel": "Familie:",
@@ -1400,6 +1402,11 @@
"loadFailed": "Die Massenaktualisierungskonfiguration konnte nicht geladen werden."
},
"appEditor": {
"dockerDetectedWithWorkloads": "Docker mit {count} Anwendungen in Containern erkannt",
"dockerWorkloadsHeading": "Anwendungen in Docker",
"runsInsideDocker": "Wird mit dem Docker-Image aktualisiert",
"upstreamDelegatedTitle": "Die verfügbare Version stammt aus dem Docker-Image",
"upstreamDelegatedHelp": "Diese Anwendung läuft in einem Container. Die verfügbare Version wird aus dessen Image ermittelt, ohne separate Abfrage oder doppelte Benachrichtigungen. Aktualisieren Sie das Image im Tab Aktualisierungen.",
"closePanel": "Panel schließen",
"cancelButton": "Stornieren",
"saveButton": "Speichern",
+1
View File
@@ -1325,6 +1325,7 @@
"noUpdateMethodTitle": "No update method available",
"noUpdateMethodBody": "No update method has been identified for this application. Add a custom update command.",
"updatedWithDockerImage": "Updated with its Docker image.",
"dockerBindingUnavailable": "No image is linked yet. Check the container name and refresh the image inventory.",
"ociImmutableTitle": "OCI image container",
"ociImmutableBody": "OS packages are baked in at image build time and cannot be updated in place. Apply updates manually or reinstall with a newer image.",
"hideNoticeButton": "Hide this notice for this app",
+7
View File
@@ -1239,6 +1239,8 @@
"custom": "Cron personalizado..."
},
"updates": {
"updatedWithDockerImage": "Se actualiza con su imagen Docker.",
"dockerBindingUnavailable": "Aún no hay una imagen vinculada. Comprueba el nombre del contenedor y actualiza el inventario de imágenes.",
"osPackagesTitle": "Paquetes de sistema operativo",
"lastCheckedPrefix": "Última comprobación:",
"familyLabel": "Familia:",
@@ -1400,6 +1402,11 @@
"loadFailed": "no se pudo cargar la configuración de actualización masiva."
},
"appEditor": {
"dockerDetectedWithWorkloads": "Docker detectado con {count} aplicaciones en contenedores",
"dockerWorkloadsHeading": "Aplicaciones en Docker",
"runsInsideDocker": "Se actualiza con su imagen Docker",
"upstreamDelegatedTitle": "La versión disponible proviene de su imagen Docker",
"upstreamDelegatedHelp": "Esta aplicación se ejecuta en un contenedor. La versión disponible se obtiene de su imagen, sin otra consulta independiente ni avisos duplicados. Actualízala desde su imagen en la pestaña Actualizaciones.",
"closePanel": "Cerrar panel",
"cancelButton": "Cancelar",
"saveButton": "Guardar",
+7
View File
@@ -1239,6 +1239,8 @@
"custom": "Cron personnalisé…"
},
"updates": {
"updatedWithDockerImage": "Mise à jour avec son image Docker.",
"dockerBindingUnavailable": "Aucune image associée pour le moment. Vérifiez le nom du conteneur et actualisez l’inventaire des images.",
"osPackagesTitle": "Packages de système d'exploitation",
"lastCheckedPrefix": "Dernière vérification :",
"familyLabel": "Famille:",
@@ -1400,6 +1402,11 @@
"loadFailed": "Impossible de charger la configuration de la mise à jour groupée."
},
"appEditor": {
"dockerDetectedWithWorkloads": "Docker détecté avec {count} applications conteneurisées",
"dockerWorkloadsHeading": "Applications dans Docker",
"runsInsideDocker": "Mise à jour avec son image Docker",
"upstreamDelegatedTitle": "La version disponible provient de son image Docker",
"upstreamDelegatedHelp": "Cette application s’exécute dans un conteneur. La version disponible est déterminée par son image, sans vérification séparée ni notifications en double. Mettez son image à jour dans l’onglet Mises à jour.",
"closePanel": "Fermer le panneau",
"cancelButton": "Annuler",
"saveButton": "Sauvegarder",
+7
View File
@@ -1239,6 +1239,8 @@
"custom": "Cronologia personalizzata..."
},
"updates": {
"updatedWithDockerImage": "Si aggiorna con la sua immagine Docker.",
"dockerBindingUnavailable": "Nessuna immagine ancora associata. Controlla il nome del container e aggiorna l’inventario delle immagini.",
"osPackagesTitle": "Pacchetti del sistema operativo",
"lastCheckedPrefix": "Ultimo controllo:",
"familyLabel": "Famiglia:",
@@ -1400,6 +1402,11 @@
"loadFailed": "impossibile caricare la configurazione dell'aggiornamento collettivo."
},
"appEditor": {
"dockerDetectedWithWorkloads": "Docker rilevato con {count} applicazioni in container",
"dockerWorkloadsHeading": "Applicazioni in Docker",
"runsInsideDocker": "Si aggiorna con la sua immagine Docker",
"upstreamDelegatedTitle": "La versione disponibile proviene dalla sua immagine Docker",
"upstreamDelegatedHelp": "Questa applicazione viene eseguita in un container. La versione disponibile viene ricavata dalla sua immagine, senza controlli separati né notifiche duplicate. Aggiorna l’immagine nella scheda Aggiornamenti.",
"closePanel": "Chiudi pannello",
"cancelButton": "Cancellare",
"saveButton": "Salva",
+7
View File
@@ -1239,6 +1239,8 @@
"custom": "Cronograma personalizado…"
},
"updates": {
"updatedWithDockerImage": "Atualizada através da sua imagem Docker.",
"dockerBindingUnavailable": "Ainda não existe uma imagem associada. Verifique o nome do contentor e atualize o inventário de imagens.",
"osPackagesTitle": "Pacotes de sistema operacional",
"lastCheckedPrefix": "Última verificação:",
"familyLabel": "Família:",
@@ -1400,6 +1402,11 @@
"loadFailed": "não foi possível carregar a configuração de atualização em massa."
},
"appEditor": {
"dockerDetectedWithWorkloads": "Docker detetado com {count} aplicações em contentores",
"dockerWorkloadsHeading": "Aplicações no Docker",
"runsInsideDocker": "Atualizada através da sua imagem Docker",
"upstreamDelegatedTitle": "A versão disponível provém da sua imagem Docker",
"upstreamDelegatedHelp": "Esta aplicação é executada num contentor. A versão disponível é obtida da sua imagem, sem uma consulta separada nem notificações duplicadas. Atualize a imagem no separador Atualizações.",
"closePanel": "Fechar painel",
"cancelButton": "Cancelar",
"saveButton": "Salvar",
+7
View File
@@ -1260,6 +1260,8 @@
"custom": "Vlastný cron…"
},
"updates": {
"updatedWithDockerImage": "Aktualizuje sa spolu so svojím obrazom Docker.",
"dockerBindingUnavailable": "Zatiaľ nie je priradený žiadny obraz. Skontrolujte názov kontajnera a obnovte inventár obrazov.",
"osPackagesTitle": "Balíky systému",
"lastCheckedPrefix": "Naposledy skontrolované:",
"familyLabel": "Systém:",
@@ -1421,6 +1423,11 @@
"loadFailed": "Konfiguráciu hromadnej aktualizácie sa nepodarilo načítať."
},
"appEditor": {
"dockerDetectedWithWorkloads": "Zistený Docker s {count} aplikáciami v kontajneroch",
"dockerWorkloadsHeading": "Aplikácie v Dockeri",
"runsInsideDocker": "Aktualizuje sa spolu s obrazom Docker",
"upstreamDelegatedTitle": "Dostupná verzia pochádza z jej obrazu Docker",
"upstreamDelegatedHelp": "Táto aplikácia beží v kontajneri. Dostupná verzia sa zisťuje z jeho obrazu bez samostatnej kontroly alebo duplicitných upozornení. Obraz aktualizujte na karte Aktualizácie.",
"closePanel": "Zavrieť panel",
"cancelButton": "Zrušiť",
"saveButton": "Uložiť",
+7
View File
@@ -1239,6 +1239,8 @@
"custom": "Anpassad cron..."
},
"updates": {
"updatedWithDockerImage": "Uppdateras med sin Docker-avbildning.",
"dockerBindingUnavailable": "Ingen avbildning är kopplad ännu. Kontrollera containerns namn och uppdatera avbildningsinventeringen.",
"osPackagesTitle": "OS-paket",
"lastCheckedPrefix": "Senast kontrollerad:",
"familyLabel": "Familj:",
@@ -1400,6 +1402,11 @@
"loadFailed": "Det gick inte att läsa in massuppdateringskonfigurationen."
},
"appEditor": {
"dockerDetectedWithWorkloads": "Docker hittades med {count} applikationer i containrar",
"dockerWorkloadsHeading": "Applikationer i Docker",
"runsInsideDocker": "Uppdateras med sin Docker-avbildning",
"upstreamDelegatedTitle": "Den tillgängliga versionen hämtas från dess Docker-avbildning",
"upstreamDelegatedHelp": "Den här applikationen körs i en container. Den tillgängliga versionen hämtas från dess avbildning, utan separat kontroll eller dubbla aviseringar. Uppdatera avbildningen på fliken Uppdateringar.",
"closePanel": "Stäng panelen",
"cancelButton": "Avbryt",
"saveButton": "Spara",