GitLab bietet Rake-Aufgaben zum Bereinigen von GitLab-Instanzen. Verwenden Sie Ihr Stammverzeichnis /nicht als PATH, da der Build den gesamten Inhalt Ihrer Festplatte auf den Docker-Daemon überträgt. Wenn mehrere Ressourcen angegeben werden, entweder direkt oder aufgrund der Verwendung eines Platzhalters, dann muss ein Verzeichnis sein, und es muss mit einem Schrägstrich / enden. Abs gibt eine absolute Darstellung des Pfads zurück. Wenn der Pfad nicht absolut ist, wird er mit dem aktuellen Arbeitsverzeichnis verknüpft, um ihn in einen absoluten Pfad zu verwandeln. Der absolute Pfadname für eine bestimmte Datei ist nicht garantiert eindeutig. Abs ruft Clean auf das Ergebnis. Match erfordert Muster, um allen Namen zu entsprechen, nicht nur eine Teilzeichenfolge. Der einzige mögliche zurückgegebene Fehler ist ErrBadPattern, wenn das Muster falsch formatiert ist.

Die notName()-Methode schließt Dateien aus, die einem Muster entsprechen: Rel gibt einen relativen Pfad zurück, der lexikalisch dem targpath entspricht, wenn er mit einem dazwischen liegenden Trennzeichen mit Basepath verbunden wird. Das heißt, Join(basepath, Rel(basepath, targpath)) ist gleich targpath selbst. Bei Erfolg ist der zurückgegebene Pfad immer relativ zum Basispfad, auch wenn Basispfad und Targpfad keine Elemente teilen. Ein Fehler wird zurückgegeben, wenn targpath nicht relativ zum Basispfad gemacht werden kann oder wenn die Kenntnis des aktuellen Arbeitsverzeichnisses erforderlich wäre, um es zu berechnen. Rel ruft Clean auf das Ergebnis auf. Schließlich können Sie angeben, welche Dateien in den Kontext aufgenommen werden sollen und nicht welche, die ausgeschlossen werden sollen. Um dies zu erreichen, geben Sie * als erstes Muster an, gefolgt von einem oder mehreren ! Ausnahmemuster. Erstellen Sie ein Verzeichnis für den Buildkontext und cd in ihn. Schreiben Sie “hello” in eine Textdatei mit dem Namen hello, und erstellen Sie eine Dockerfile, auf der Cat ausgeführt wird. Erstellen Sie das Image aus dem Buildkontext (.): Glob ignoriert Dateisystemfehler wie E/A-Fehler beim Lesen von Verzeichnissen.

Der einzige mögliche zurückgegebene Fehler ist ErrBadPattern, wenn das Muster falsch formatiert ist. SkipDir wird als Rückgabewert von WalkFuncs verwendet, um anzugeben, dass das im Aufruf genannte Verzeichnis übersprungen werden soll. Es wird von keiner Funktion als Fehler zurückgegeben. Das Festlegen des Escapezeichens auf ` ist besonders nützlich unter Windows, wobei das Verzeichnispfadtrennzeichen . ` ist mit Windows PowerShell konsistent. Beim Hinzufügen von Dateien oder Verzeichnissen, die Sonderzeichen enthalten (z. B. [ und ]), müssen Sie diese Pfade nach den Golang-Regeln zu escapeen, um zu verhindern, dass sie als übereinstimmendes Muster behandelt werden. Um beispielsweise eine Datei mit dem Namen arr[0].txt hinzuzufügen, verwenden Sie Folgendes. Ein Kontext wird rekursiv verarbeitet.

Ein PATH enthält also alle Unterverzeichnisse, und die URL enthält das Repository und seine Submodule. Dieses Beispiel zeigt einen Buildbefehl, der das aktuelle Verzeichnis als Kontext verwendet: Wenn ein Problem beim Gehen zu der Datei oder dem Verzeichnis aufgetreten ist, die nach Pfad benannt wurde, beschreibt der eingehende Fehler das Problem, und die Funktion kann entscheiden, wie dieser Fehler behandelt werden soll (und Walk wird nicht in dieses Verzeichnis absteigen). Im Falle eines Fehlers ist das info-Argument gleich Null. Wenn ein Fehler zurückgegeben wird, wird die Verarbeitung beendet. Die einzige Ausnahme ist, wenn die Funktion den Sonderwert SkipDir zurückgibt.