Compose Hausaufgabe
In dieser Aufgabe erstellen Sie ein Docker Image, das einem CI/CD Prozess zur statischen Code-Analyse verwendet werden kann. Für die Aufgabe wird das Image mittels Docker Compose gebaut gestartet.
Aufgabestellung
Erstellen Sie ein
Dockerfile
auf Basis dessen Sie ein Image erstellen könnenErstellen Sie eine
docker-compose.yml
Datei mittels derer das Image gebaut und gestartet werden kann.Das Image muss folgende Anforderungen erfüllen:
Das Image wird automatisch gebaut, sobald via Docker Compose
docker-compose up
aufgerufen wird.Nachdem der Container gestartet wurde, wird automatisch ein Git Repository gecloned.
Die URL auf das Git Repository kann in der
docker-compose.yml
Datei spezifiziert werden.Hinweis: Die Repository URL darf nicht im Image hart hinterlegt werden.
Nach dem Clonen des Repositories startet Ihr Container Checkstyle und führt eine Analyse des Codes im Repository auf Basis der Google Java Style Guide aus.
Die Datei mit der Google Java Style Guide wird von Ihnen bereitgestellt und befindet sich im gleichen Verzeichnis wie das Dockerfile.
Der Pfad des Quell-Codes im Repository (z.B.
/src/foo/bar/
) kann in derdocker-compose.yml
Datei spezifiziert werden.Hinweis: Der Pfad darf nicht hart im Image hinterlegt sein.
Die Ausführung von Checkstyle erfolgt über ein Gradle Skript.
Das Skript befindet sich im selben Verzeichnis wie Ihr Dockerfile und kann baum bauen des Images in dieses kopiert werden.
Beide Parameter (Git Repository und der Pfad zum Code innerhalb des Repositories) können als Parameter in der
docker-compose.yml
Datei geändert werden.Änderungen an den Parametern treten immer erst nach dem Neustart des Containers (via
docker-compose up
) in Kraft.Alle Fehler, die auftreten sollen im Container Log via
docker logs
ausgegeben werden.Werden bei der Ausführung von Checkstyle Abweichungen von den Google Java Style Guides festgestellt, soll diese Ausgabe ebenfalls im container log ausgegeben werden.
Hinweis: Zusätzliche Informationen zu Parametern für Images und Containers finden Sie folgendem Artikel: https://vsupalov.com/docker-arg-env-variable-guide/.
Last updated