Container git Fehler „fatal: unsafe repository (/dir is owned by someone else)“ beheben

Tester führen Tests gerne in Docker Containern aus, soweit so bekannt.. Auch dass wir alle ganz gerne git verwenden, wundert eigentlich nicht wirklich. Nur kann die Kombination von beiden auch kleinere Probleme bereiten. So sind auch bei uns spontan, von einem Tag auf den anderen sämtliche Testfälle beim Cleanup der Umgebung ausgestiegen mit der Fehlermeldung:

+ git clean -fdx
fatal: unsafe repository ('/usr/share/jenkins/workspace/tests/nightly' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory '/usr/share/jenkins/workspace/tests/nightly'

Der Fehler ist relativ neu und ist hier beschrieben: https://github.com/actions/checkout/issues/760

Der Workaround ist einfach. Vor dem Call von „git clean -fdx“ muss in der groovy Datei die git Config angepasst werden:

sh 'git config --global --add safe.directory \'*\''
sh 'git clean -fdx'

Kleinere Anmerkungen zu dem Fix:

  1. Die Änderung muss direkt im Container ausgeführt werden, also direkt im Groovy Skript eingepflegt. Eine Änderung auf dem Hostsystem bringt keine Besserung. (eigentlich keine Überraschung, bin aber trotzdem erstmal auf den Fehler reingefallen… 😉 )
  2. Ich habe unterschiedliche Subverzeichnisse, dadurch bin ich in der Ausführung mit der „Hammer“-Methode, um genauer zu sein mit  der Wildcard Methode vorgegangen. Ist nicht schön, aber dadurch, dass der Container nach der Testausführung abgebaut und verworfen wird, sollte das keine negativen Auswirkungen haben. Wer sicher gehen möchte, sollte nur die richtigen Verzeichnisse an dieser Stelle angeben.
Waldemar Siebert on Linkedin
Waldemar Siebert
Begeisterter Entwickler, Trainer und Berater zu allem Themen rund um agile Softwareentwicklung, Softwarequalität und Testautomatisierung.

Mitgründer der Firma SimplyTest GmbH
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.