Skip to main content

Problembehandlung bei Prebuilds

Mit Prebuilds kannst du die Erstellung von Codespaces beschleunigen. Dieser Artikel enthält Schritte zur Behandlung von häufig auftretenden Problemen mit Prebuilds.

Weitere Informationen zu GitHub Codespaces-Prebuilds findest du unter Vordefinieren von Codespaces.

Prüfst du, ob ein Codespace aus einem Prebuild erstellt wurde?

Wenn du einen Codespace erstellst, kannst du den Typ des virtuellen Computers auswählen, den du verwenden möchtest. Wenn ein Prebuild für den VM-Typ verfügbar ist, wird daneben „ Prebuild bereit“ angezeigt.

Screenshot einer Liste der verfügbaren Computertypen: 2, 4, 8, 16 und 32 Kerne, alle mit der Bezeichnung „Prebuild bereit“.

Wenn du die Voreinstellungen für den GitHub Codespaces-Editor auf „Visual Studio Code für Web“ festgelegt hast, wird auf der Seite „Einrichten deines Codespace“ die Meldung „Vordefinierter Codespace gefunden“ angezeigt, wenn ein Prebuild verwendet wird.

Screenshot der Seite „Einrichten deines Codespace“ mit dem folgenden Text: „Vordefinierter Codespace gefunden. Image wird heruntergeladen.“

Ähnlich verhält es sich, wenn deine Editor-Voreinstellung „VS Code“ lautet. Dann wird im integrierten Terminal die Meldung „Du befindest dich in einem vordefinierten Codespace, der durch die Prebuildkonfiguration für dein Repository definiert ist“ angezeigt, wenn du einen neuen Codespace erstellst. Weitere Informationen findest du unter Festlegen deines Standard-Editors für GitHub Codespaces.

Nachdem du einen Codespace erstellt hast, kannst du überprüfen, ob er aus einem Prebuild erstellt wurde, indem du den folgenden GitHub CLI-Befehl im Terminal ausführst:

Shell
gh api /user/codespaces/$CODESPACE_NAME --jq .prebuild

Dieser gibt true zurück, wenn der Codespace mithilfe eines Prebuilds erstellt wurde.

Wenn GitHub CLI (gh) nicht installiert ist, kannst du den folgenden Befehl verwenden, der createFromPrebuild zurückgibt, wenn der Codespace aus einem Prebuild erstellt wurde:

Shell
cat /workspaces/.codespaces/shared/environment-variables.json | jq '.ACTION_NAME'

Überprüfen der Prebuildnutzung

Du kannst auf der Seite „Codespaces“ der Repositoryeinstellungen überprüfen, ob ein Repository Prebuilds nutzt.

Du kannst überprüfen, wie viel Speicherplatz von Prebuilds im aktuellen Abrechnungszeitraum verbraucht wurde, indem du dir die Abrechnungsdaten für dein persönliches Konto oder Organisationskonto ansiehst. Du kannst auch einen Nutzungsbericht generieren, um zu ermitteln, welche Repositorys Prebuilds verwendet haben. Weitere Informationen findest du unter Anzeigen deiner GitHub Codespaces-Nutzung.

Die Bezeichnung „Prebuild bereit“ fehlt manchmal.

Wenn du einen neuen Codespace aus einem Branch mit Prebuildunterstützung erstellst, stellst du vielleicht fest, dass die Bezeichnung „ Prebuild bereit“ nicht im Dialogfeld für die Auswahl eines Computertyps angezeigt wird. Dies bedeutet, dass Prebuilds derzeit nicht verfügbar sind.

Der Prebuild wird standardmäßig jedes Mal aktualisiert, wenn du einen Push in einen Branch mit Prebuildunterstützung ausführst. Wenn der Push eine Änderung der Konfiguration des Entwicklungscontainers beinhaltet, wird während der Aktualisierung die Bezeichnung „ Prebuild bereit“ aus der Liste der Computertypen entfernt. Während dieser Zeit kannst du weiterhin Codespaces ohne Prebuild erstellen. Bei Bedarf kannst du die Anzahl der Fälle reduzieren, in denen Prebuilds für ein Repository nicht verfügbar sind, indem du das Prebuild so einstellst, dass es nur aktualisiert wird, wenn du eine Änderung an deinen Dev-Container-Konfigurationsdateien vornimmst, oder nur nach einem benutzerdefinierten Zeitplan. Weitere Informationen findest du unter Konfigurieren von Prebuilds.

Wenn dein Branch nicht speziell für Prebuilds aktiviert ist, kann er trotzdem von Prebuilds profitieren, wenn er von einem Branch mit Prebuildunterstützung abzweigt. Wenn die Dev-Containerkonfiguration jedoch in deinem Branch geändert wird, sodass sie nicht mit der Konfiguration im Basisbranch identisch ist, stehen Prebuilds nicht mehr in deinem Branch zur Verfügung.

Die folgenden Punkte müssen überprüft werden, wenn die Bezeichnung „ Prebuild bereit“ für einen bestimmten Branch nicht angezeigt wird:

  • Vergewissere dich, dass für diesen Branch eine Prebuildkonfiguration vorhanden ist. Wenn du kein Repositoryadministrator bist, musst du einen solchen bitten, dies zu bestätigen.
  • Vergewissere dich, dass die Vorbuildkonfiguration deine Region enthält.
  • Überprüfe, ob kürzlich eine Änderung der Dev-Containerkonfiguration zu dem Branch mit Prebuildunterstützung verschoben wurde. Wenn dies der Fall ist, musst du in der Regel warten, bis der Prebuildworkflow für diesen Push abgeschlossen ist, bevor Prebuilds erneut verfügbar sind.
  • Wenn in letzter Zeit keine Konfigurationsänderungen vorgenommen wurden, navigiere zur Registerkarte Aktionen deines Repositorys, wähle in der Liste der Workflows Codespaces-Prebuilds aus, und überprüfe, ob Ausführungen von Prebuildworkflows für den Branch erfolgreich sind. Wenn die letzten Ausführungen eines Workflows erfolglos waren und eine oder mehrere dieser erfolglosen Ausführungen Änderungen an der Dev-Container-Konfiguration enthielten, sind keine Prebuilds für den zugehörigen Branch verfügbar.

In Codespaces, die mithilfe eines Prebuilds erstellt wurden, kann auf einige Ressourcen nicht zugegriffen werden.

Wenn die devcontainer.json-Konfigurationsdatei für eine Prebuildkonfiguration angibt, dass Berechtigungen für den Zugriff auf andere Repositorys erforderlich sind, werden Repositoryadministratorinnen beim Erstellen oder Aktualisieren der Prebuildkonfiguration aufgefordert, diese Berechtigungen zu autorisieren. Wenn der bzw. die Administratorin nicht alle angeforderten Berechtigungen gewährt, können im Prebuild und in Codespaces, die aus diesem Prebuild erstellt wurden, unter Umständen Probleme auftreten. Dies gilt auch dann, wenn die Benutzer*innen, die einen Codespace basierend auf diesem Prebuild erstellen, alle Berechtigungen gewähren, wenn sie dazu aufgefordert werden.

Problembehandlung bei erfolglosen Workflowausführungen für Prebuilds

Erhöhen des Ausgabenlimits für GitHub Actions

Prebuilds werden mit GitHub Actions erstellt und aktualisiert. Prebuildworkflows sind nicht erfolgreich, wenn du alle deine GitHub Actions-Minuten aufgebraucht und dein Ausgabenlimit erreicht hast. Sollte das der Fall sein, kannst du dein Ausgabenlimit für GitHub Actions erhöhen, damit die Workflows ausgeführt werden können. Weitere Informationen findest du unter Verwalten deines Ausgabenlimits für GitHub Actions.

Autorisieren von Zugriffsberechtigungen

Wenn die devcontainer.json-Konfigurationsdatei für eine Prebuildkonfiguration aktualisiert wird, um anzugeben, dass Berechtigungen für den Zugriff auf andere Repositorys erforderlich sind, und Repositoryadministrator*innen nicht zur Autorisierung dieser Berechtigungen für die Prebuildkonfiguration aufgefordert werden, kann der Prebuild fehlschlagen. Versuche, die Prebuildkonfiguration zu aktualisieren, ohne Änderungen vorzunehmen. Wenn du auf Aktualisieren klickst, wird die Autorisierungsseite angezeigt. Überprüfe, ob die angeforderten Berechtigungen geeignet sind, und autorisiere die Anforderung gegebenenfalls. Weitere Informationen findest du unter Verwalten von Prebuilds und unter Verwalten des Zugriffs auf andere Repositorys innerhalb deines Codespace.

Wenn die Workflowausführungen für eine Prebuildkonfiguration erfolglos sind, kannst du die Prebuildkonfiguration vorübergehend deaktivieren, während du Untersuchungen anstellst. Weitere Informationen findest du unter Verwalten von Prebuilds.

Verhindern der Verwendung veralteter Prebuilds

Wenn beim neuesten Prebuildworkflow ein Fehler aufgetreten ist, wird standardmäßig ein vorheriger Prebuild für die gleiche Kombination aus Repository, Branch und Konfigurationsdatei (devcontainer.json) verwendet, um neue Codespaces zu erstellen. Dieses Verhalten wird als Prebuildoptimierung bezeichnet.

Es empfiehlt sich, die Prebuildoptimierung aktiviert zu lassen, da dadurch sichergestellt werden kann, dass weiterhin schnell Codespaces erstellt werden können, auch wenn kein aktueller Prebuild verfügbar ist. Als Repositoryadministrator kannst du die Prebuildoptimierung jedoch deaktivieren, wenn bei dir Probleme mit vordefinierten Codespaces auftreten, die nicht dem aktuellen Zustand des Branchs entsprechen. Falls du die Prebuildoptimierung deaktivierst, werden Codespaces für die relevante Kombination aus Repository, Branch und der Datei devcontainer.json ohne Prebuild erstellt, wenn beim neuesten Prebuildworkflow ein Fehler aufgetreten ist oder wenn der neueste Prebuildworkflow gerade ausgeführt wird.

  1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  2. Wähle unter dem Namen deines Repositorys die Option Einstellungen aus. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicke im Abschnitt „Code und Automatisierung“ der Randleiste auf Codespaces .

  4. Wähle rechts neben der betroffenen Prebuildkonfiguration die Auslassungspunkte ( ... ) aus, und klicke anschließend auf Bearbeiten.

    Screenshot der Dropdownliste mit den Prebuildoptionen mit hervorgehobener Option „Bearbeiten“.

  5. Scrolle zum unteren Rand der Seite „Konfiguration bearbeiten“, und klicke auf Erweiterte Optionen anzeigen.

    Screenshot: Unterer Teil der Konfigurationsseite für Prebuilds. Der Link „Erweiterte Optionen anzeigen“ ist dunkelorange umrandet.

  6. Falls du die Standardeinstellung wirklich deaktivieren möchtest, wähle Prebuildoptimierung deaktivieren aus.

    Screenshot der Seite „Erweiterte Optionen“. Das Kontrollkästchen „Prebuildoptimierung deaktivieren“ ist aktiviert. Darunter befindet sich die Schaltfläche „Aktualisieren“.

  7. Klicke zum Speichern deiner Änderung auf Aktualisieren.

Weiterführende Themen