
Ein Repository, das automatisch eine Reihe von Docker-Images generiert und über GitHub Actions auf dem neuesten Stand hält.
RAUDI (Regularly and Automatically Updated Docker Images) erstellt und aktualisiert automatisch eine Reihe von Docker-Images über GitHub Actions für Tools, die nicht von den Entwicklern bereitgestellt werden.
RAUDI erspart Ihnen das manuelle Erstellen und Verwalten vieler Docker-Images. Jedes Mal, wenn eine Software aktualisiert wird, müssen Sie das Docker-Image aktualisieren, wenn Sie die neuesten Funktionen nutzen möchten, die Abhängigkeiten funktionieren nicht mehr.
Das ist mühsam und zeitaufwändig.
Machen Sie sich keine Sorgen mehr, wir haben alles im Griff.
Sie können entweder dieses Repository forken und den GitHub-Workflow selbst nutzen oder es lokal verwenden (und seine Ausführung nach Ihren Wünschen verwalten).
Wenn Sie dieses Repository forken möchten, müssen Sie auch einige Secrets einrichten, um Ihre Images auf Ihr persönliches Docker Hub-Konto pushen zu können. Zwei GitHub-Secrets müssen gesetzt werden:
Nach dem Setzen dieser Secrets müssen Sie die organization-Variable in der Datei tools/main.py bearbeiten, da sie so konfiguriert ist, dass sie auf den Docker Hub für SecSI pusht.
Das war's, Leute: Gehen Sie zu Action, aktivieren Sie es für Ihr geforktes Repository, warten Sie bis Mitternacht, und der Workflow erledigt die schwere Arbeit!
Dieses Repository kann auch lokal ausgeführt werden. Die zu erfüllenden Anforderungen sind:
Hier ist die Dokumentation für die Arbeit mit BuildX: https://docs.docker.com/buildx/working-with-buildx/
Die Einrichtungsphase ist recht einfach, Sie benötigen lediglich die folgenden Befehle:
git clone https://github.com/cybersecsi/RAUDI
cd RAUDI
pip install -r requirements.txt
Sie sind startklar!
Um den Test auszuführen, müssen Sie pytest mit dem Befehl pip install pytest installieren (es ist nicht in requirements.txt enthalten, da es nur zu Testzwecken benötigt wird) und dann können Sie ausführen:
pytest -s
oder
python -m pytest -s
um die Tests auszuführen.
RAUDI kann alle Tools, die in das tools-Verzeichnis abgelegt werden, bauen und pushen. Es gibt verschiedene Optionen, die bei der Ausführung verwendet werden können. Bevor Sie es lokal verwenden, sollten Sie eine .env-Datei erstellen (Sie können einfach die .env.sample-Datei kopieren) und Ihren GitHub Personal Access Token hinzufügen, um das Rate Limiting zu vermeiden. Für nicht authentifizierte Benutzer erlaubt GitHub bis zu 60 Anfragen pro Stunde, während authentifizierte Benutzer bis zu 15.000 Anfragen pro Stunde erlaubt bekommen. Aus diesem Grund empfehlen wir Ihnen, ihn hinzuzufügen! Sie können auch einen persönlichen Zugriffstoken ohne jeden Umfang erstellen, da wir nur einige Informationen für jedes GitHub-Repository lesen.
In diesem Modus versucht RAUDI, alle Tools bei Bedarf zu bauen. Der Befehl zum Ausführen ist einfach:
python3 ./raudi.py --all
In diesem Modus versucht RAUDI, nur das angegebene Tool zu bauen. Der Befehl in diesem Fall lautet:
python3 ./raudi.py --single <tool_name>
tool_name MUSS der Name des Verzeichnisses im tools-Ordner sein.
Da der Parameter tests zur Konfigurationsstruktur des Tools hinzugefügt wurde, kann es hilfreich sein, zu testen, ob die eingefügten Befehle einen Statuscode von 0 zurückgeben. Der Befehl zum Testen eines bestimmten Tools lautet:
python3 ./raudi.py --test <tool_name>
tool_name MUSS der Name des Verzeichnisses im tools-Ordner sein.
Wenn Sie die verfügbaren Tools erfahren möchten, können Sie diesen Befehl ausführen:
python3 ./raudi.py --list
Wenn Sie schnell einen neuen Tool-Ordner hinzufügen möchten, ausgehend von einer der verfügbaren Vorlagen, können Sie diesen Befehl ausführen:
python3 ./raudi.py --bootstrap <new_tool_name>
| Option | Beschreibung | Standardwert |
|---|---|---|
| --push | Ob automatisch auf Docker Hub gepusht werden soll | False |
| --remote | Ob vor dem Bau gegen Docker Hub statt lokalem Docker geprüft werden soll | False |
| --force | Ob gebaut werden soll, wenn ein Image mit demselben Tagname gefunden wurde | False |
Dies ist die aktuelle Liste der hinzugefügten Tools. Es handelt sich um Tools, die kein offizielles Docker-Image vom Entwickler haben: