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:
- 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… 😉 )
- 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.
Begeisterter Entwickler, Trainer und Berater zu allem Themen rund um agile Softwareentwicklung, Softwarequalität und Testautomatisierung.
Gründer und Geschäftsführer der Firma SimplyTest GmbH
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!