Ich habe eine benutzerdefinierte Docker Container, in dem ich Build und Test eines Projekts durchführen. Es ist irgendwie in Travis CI integriert. Jetzt möchte ich die Coverity Scan Analyse von innerhalb der Travis CI auch ausführen, aber der schwierige Teil ist (wenn ich die Coverity Dokumente richtig verstehe), dass ich den Build ausführen muss. Der Build wird jedoch im Container ausgeführt.Coverity Scan beim Erstellen im Docker Container
nun nach dem cov-build --help
Die cov-build oder cov-build-sbox Befehl fängt alle Aufrufe an den Compiler durch das Build-System aufgerufen und fängt den Quellcode das Dateisystem.
Was ich versucht habe:
cov-build --dir=./cov docker exec -ti container_name sh -c "<custom build commands>"
Mit diesem Ansatz jedoch Coverity offenbar nicht die Anrufe an den Compiler verfängt (es ist durchaus verständlich angesichts Docker Philosophie) und emittiert keine Dateien
Was ich nicht wollen (zumindest solange es Hoffnung auf eine bessere Lösung ist):
- lokal installieren alle notwendigen Sachen zu bauen in den Container nur um Coverity Scan ausführen zu können.
- Ich glaube, dies würde erhöht die Docker Bildgröße deutlich
- ich Travis CI Addon für den Coverity-Scan und diese:
cov-build aus dem Behälter, da laufen würde Dinge viel komplizieren.
Der Travis CI Teil entweder nur FWIW, versuchte alles, was vor Ort und es funktioniert nicht.
Ich bin begeistert für irgendwelche Vorschläge für das Problem. Vielen Dank.
Hallo, vielen Dank für den Kommentar. Ich habe es mit dem Befehl 'cov-translate --dir = ./cov docker exec -ti container sh -c" "' versucht. Aber nach dem Build bin ich mit 'translate_and_emit: [ERROR] gelaufen. Keine Compilereinstellungen für docker gefunden. –
CermakM
' cov-translate' muss verwendet werden, als wäre es der Compiler selbst. Es sieht so aus, als ob man versucht es zu benutzen, als wäre es 'cov-build'. Versuchen Sie vielleicht, 'cov-build' in der Befehlszeile in Ihrem Kommentar zu verwenden? – Caleb
Könnten Sie bitte genauer sein? Wenn Sie wörtlich Cov-Build vor dem Befehl hinzufügen und den ganzen 'cov-translate' als Build-Befehl verwenden, funktioniert es auch nicht. Auch hilft die - Hilfe überhaupt nicht. – CermakM