Behalten Sie Docker-Containerprotokolle in der Jenkins-Pipeline beiLinux

Linux verstehen
Guest
 Behalten Sie Docker-Containerprotokolle in der Jenkins-Pipeline bei

Post by Guest »

Ich möchte meiner Jenkins-Pipeline einen Schritt hinzufügen, in dem ich die Protokolle meines Containers speichere, wenn ein Container mit demselben Namen ausgeführt wird. Die Idee ist, dass ich die Protokolle aus alten Containern bei jeder erneuten Bereitstellung beibehalten möchte. Ich verwende Debian 11.
Ich habe versucht, sie direkt mit cp zu kopieren, es wurde jedoch ein Fehler ausgegeben, der besagte, dass der Jenkins-Benutzer keine Berechtigungen hatte /var/lib/docker/containers/. Ich habe versucht, diesem bestimmten Benutzer mit setfacl rekursive rwx-Berechtigungen für alle Verzeichnisse in /var/lib/docker/containers zu erteilen. Ich konnte sehen, dass sie in getfacl vorhanden waren. Das Problem bestand jedoch weiterhin. Ich habe versucht, allen vorübergehend rwx-Berechtigungen zu erteilen, obwohl mir angezeigt wurde, dass der Benutzer immer noch keine Berechtigungen hatte. Sogar das Ausführen von sudo -u jenkins ls /var/lib/docker/containers löste einen Fehler aus. Ich verstehe nicht, wie das passieren könnte, wenn Berechtigungen für alle außerhalb der Stammgruppe, also der Gruppe, die /containers besitzt, gewährt wurden. Für mich sollte dies auch den Benutzer jenkins einschließen.
Alternativ habe ich versucht, die Protokolle mithilfe von Docker-Protokollen > container_logs.log zu speichern Dadurch wurden jedes Mal nur die ersten paar Zeilen aus den Protokollen gespeichert. Ich habe versucht, stdbuf -o0 voranzustellen, aber es wurden immer noch nicht alle Protokolle in der Ausgabedatei gespeichert.
Jede Hilfe an beiden Fronten wäre dankbar. Es ist nicht so wichtig, welcher der beiden Ansätze die gewünschten Ergebnisse erzielen würde.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post