Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

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 Typ der VM verfügbar ist, wird „ Prebuild bereit“ daneben angezeigt.

Eine Liste mit verfügbaren Computertypen

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.

Die Meldung „Vordefinierter Codespace gefunden“

Ä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'

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, klicke in der Liste der Workflows auf Codespaces-Prebuilds, 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 Verwalten des Zugriffs auf andere Repositorys innerhalb deines Codespaces.

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. Navigiere auf GitHub.com zur Hauptseite des Repositorys. 1. Klicke unter dem Repositorynamen auf Einstellungen. Schaltfläche „Repositoryeinstellungen“

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

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

    Screenshot: Liste mit Prebuilds und hervorgehobene Option „Bearbeiten“

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

    Screenshot: Seite mit der Prebuildkonfiguration und hervorgehobener Option „Erweiterte Optionen anzeigen“

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

    Screenshot: Abschnitt mit den erweiterten Optionen und der Einstellung „Prebuildoptimierung deaktivieren“

  6. Klicke zum Speichern deiner Änderung auf Aktualisieren.

Weiterführende Themen