Skip to main content

Einschränken des Basisimages für Codespaces

Sie können angeben, welche Basisimages zur Erstellung des Entwicklercontainers für neue Codespaces verwendet werden können, die in Ihrer Organisation erstellt werden.

Wer kann dieses Feature verwenden?

To manage image constraints for an organization's codespaces, you must be an owner of the organization.

Organisationen mit GitHub Team- und GitHub Enterprise-Plänen können für die Nutzung von GitHub Codespaces durch Mitglieder und Projektmitarbeiter*innen bezahlen. Diese Organisationen können dann auf Einstellungen und Richtlinien zugreifen, die für die von der Organisation bezahlten Codespaces gelten. Weitere Informationen findest du unter Auswählen der Besitzerinnen und Zahlerinnen von Codespaces in deiner Organisation und unter GitHub-Pläne.

Übersicht

Wenn Sie einen Codespace erstellen, wird automatisch ein Entwicklercontainer auf einem virtuellen Remotecomputer erstellt. Dieser Entwicklercontainer wird aus einem Docker-Image erstellt. Das Image ist im Grunde eine Vorlage für Docker-Container und bestimmt viele Aspekte der vom Codespace bereitgestellten resultierenden Umgebung. Weitere Informationen finden Sie unter Übersicht über GitHub Codespaces.

Du kannst auswählen, welches Image du für deine Codespaces verwenden möchtest, indem du es in der Entwicklungscontainerkonfiguration für ein Repository angibst. Dazu kannst du z. B. die Eigenschaft image in der Datei devcontainer.json verwenden.

JSON
"image": "mcr.microsoft.com/devcontainers/javascript-node:18",

Weitere Informationen findest du in der Entwicklungscontainerspezifikation auf der Development Containers-Website.

Alternativ können Sie das Basisimage in einer Dockerfile angeben. Weitere Informationen finden Sie unter Einführung in Entwicklungscontainer.

Wenn Sie kein Image in der Entwicklungscontainerkonfiguration für ein Repository angeben, wird das Standard-Entwickler-Containerimage verwendet. Das Standardimage enthält eine Reihe von Runtimeversionen für gängige Programmiersprachen und häufig verwendete Tools. Weitere Informationen finden Sie unter Einführung in Entwicklungscontainer.

Als Organisationsbesitzer*in können Sie eine Richtlinie hinzufügen, mit der eingeschränkt wird, welche Entwicklungscontainerimages für Codespaces verwendet werden können, die in Ihrer Organisation erstellt werden.

Wenn Sie versuchen, einen Codespace mit einem devcontainer.json zu erstellen, das ein Bild angibt, das gemäß der Richtlinie nicht zulässig ist, wird die folgende Meldung in GitHub angezeigt:

Der Codespace kann nicht erstellt werden, da das in Ihrer Dev-Container-Konfiguration angegebene Bild nicht zulässig ist. Möglicherweise müssen Sie eine andere Verzweigung auswählen, Ihre Containerkonfiguration ändern oder die Richtlinieneinstellung Ihrer Organisation anpassen.

Bei Verwendung der CLI lautet die Fehlermeldung:

Fehler beim Erstellen von Codespace: HTTP 400: Basisimage „IMAGE-REFERENCE“ ist basierend auf einer von Ihrem Organisationsadministrator festgelegten Organisationsrichtlinie nicht zulässig.

Wenn das Image für einen Codespace in einer Dockerfile angegeben ist und nicht mit der Richtlinie übereinstimmt, wird ein Codespace im Wiederherstellungsmodus erstellt, wobei der Standardwiederherstellungscontainer anstelle des angegebenen Images verwendet wird. Eine entsprechende Meldung ist am Ende des Erstellungsprotokolls enthalten. Weitere Informationen zum Erstellungsprotokoll findest du unter GitHub Codespaces-Protokolle.

Note

  • Das Entwickler-Containerbasisimage sollte nicht mit dem Hostimage verwechselt werden. Das Hostimage ist das Image, das zum Erstellen des virtuellen Computers verwendet wird, auf dem der Entwicklungscontainer ausgeführt wird. Weitere Informationen finden Sie unter Auswählen des stabilen Hostimages oder Betahostimages.
  • Die Basisimagerichtlinie wird angewendet, wenn ein Codespace erstellt wird, und wenn Sie eine vollständige Containerneuerstellung durchführen. Weitere Informationen finden Sie unter Grundlegendes zum Codespacelebenszyklus.
  • Die Basisimagerichtlinie gilt nicht für das Standardimage oder das Image, das zum Wiederherstellen eines Codespaces verwendet wird, wenn ein Fehler in einer Entwicklungscontainerkonfiguration auftritt, der verhindert, dass der Container neu erstellt wird.

Festlegen von organisationsweiten und repositoryspezifischen Richtlinien

Wenn du eine Richtlinie erstellst, wählst du aus, ob sie für alle Repositorys in deiner Organisation oder nur für angegebene gilt. Wenn du eine organisationsweite Richtlinie festlegst, müssen alle Richtlinien, die du für einzelne Repositorys festlegst, mit der auf Organisationsebene festgelegten Einschränkung übereinstimmen. Durch das Hinzufügen von Richtlinien wird die Wahl des Images nicht weniger, sondern stärker eingeschränkt.

Du kannst beispielsweise eine organisationsweite Richtlinie erstellen, die das Basisimage auf eines von zehn angegebenen Images beschränkt. Du kannst dann eine Richtlinie für Repository A festlegen, die das Image auf eine Teilmenge von nur zwei der auf Organisationsebene angegebenen Images beschränkt. Das Angeben zusätzlicher Images für Repository A hat keine Auswirkungen, da diese Images nicht in der Richtlinie auf Organisationsebene angegeben sind. Wenn du eine organisationsweite Richtlinie hinzufügst, solltest du sie auf die größte Auswahl von Images festlegen, die für ein Repository in deiner Organisation verfügbar ist. Du kannst dann repositoryspezifische Richtlinien hinzufügen, um die Auswahl weiter einzuschränken.

Note

Richtlinien für Codespaces gelten nur für Codespaces, die deiner Organisation in Rechnung gestellt werden. Wenn ein einzelner Benutzer einen Codespace für ein Repository in Ihrer Organisation erstellt und dieser Codespace nicht unter die Abrechnung für Ihre Organisation fällt, ist er nicht an diese Richtlinien gebunden. Weitere Informationen findest du unter Auswählen der Besitzerinnen und Zahlerinnen von Codespaces in deiner Organisation.

Hinzufügen einer Richtlinie zum Definieren der zulässigen Images

  1. Wählen Sie in der oberen rechten Ecke von GitHub Ihr Profilfoto aus, und klicken Sie dann auf Ihre Organisationen.

  2. Klicke neben der Organisation auf Einstellungen.

  3. Klicke auf der Seitenleiste im Abschnitt „Code, Planung und Automatisierung“ auf Codespaces und anschließend auf Richtlinien.

  4. Klicken Sie auf der Seite „Richtlinen für Codespaces“ auf Richtlinie erstellen.

  5. Gib einen Namen für die neue Richtlinie ein.

  6. Klicke auf Einschränkung hinzufügen, und wähle Basisimages aus.

  7. Klicke auf , um die Einschränkung zu bearbeiten.

  8. Geben Sie im Feld „Zulässige Werte“ den Imageverweis des Docker-Bildes ein, das Sie zulassen möchten.

    Screenshot der Bildreferenz „mcr.microsoft.com/devcontainers/java“, die in das Feld „Zulässige Werte“ eingegeben wurde.

    Sie können den Platzhalter * als letztes Zeichen der Bildreferenz verwenden, um alle Bilder zu finden, die mit der gleichen Referenz links vom Platzhalter beginnen. Beispiel: mcr.microsoft.com/devcontainers/*.

  9. Klicke auf , um den Wert hinzuzufügen.

  10. Wiederholen Sie bei Bedarf die beiden vorherigen Schritte, um weitere Bildreferenzen hinzuzufügen.

    Wenn Sie mehrere Bildreferenzen hinzufügen und eine in der Dev-Container-Konfiguration eines Repositorys angegebene Bildreferenz nicht mit einer der Referenzen in einer für das Repository geltenden Richtlinie übereinstimmt, können Sie keine Codespaces für dieses Repository erstellen.

  11. Klicke außerhalb des Dialogfelds, um es zu schließen.

  12. Standardmäßig ist die Richtlinie so festgelegt, dass sie für alle Repositorys gilt. Wenn du möchtest, dass sie nur für einige Repositorys in deiner Organisation gilt, klicke auf Alle Repositorys und dann im Dropdownmenü auf Ausgewählte Repositorys.

    Screenshot des Dropdownmenüs zur Repositoryauswahl mit ausgewählten Optionen „Alle Repositorys“ und „Ausgewählte Repositorys“.

    Note

    Wenn du einer bestehenden Richtlinie eine Einschränkung hinzufügst, die bereits die Einschränkung „Maximale Codespaces pro Benutzer“ enthält, kannst du die Richtlinie nicht auf ausgewählte Repositorys anwenden. Das liegt daran, dass die Einschränkung „Maximale Codespaces pro Benutzer“ immer für alle Repositorys in der Organisation gilt.

    Gehe nach Auswahl von Ausgewählte Repositorys wie folgt vor:

    1. Klicke auf .

      Screenshot des Einstellungssymbols (Zahnradsymbol) links neben einer Schaltfläche mit der Bezeichnung „Ausgewählte Repositorys“.

    2. Wähle die Repositorys aus, auf die diese Richtlinie angewendet werden soll.

    3. Klicke unten in der Repositoryliste auf Repositorys auswählen.

      Screenshot einer Liste von Repositorys, jedes mit einem Kontrollkästchen. Drei Repositorys sind ausgewählt.

  13. Wenn du der Richtlinie eine weitere Einschränkung hinzufügen möchtest, klicke auf Einschränkung hinzufügen, und wähle eine andere Einschränkung aus. Informationen zu anderen Einschränkungen findest du hier:

  14. Nachdem du deiner Richtlinie Einschränkungen hinzugefügt hast, klicke auf Speichern.

Die Richtlinie wird angewendet, wenn versucht wird, einen neuen Codespace zu erstellen, der für deine Organisation abrechenbar ist. Die Basisimageeinschränkung wirkt sich nicht auf vorhandene, aktive oder beendete Codespaces aus.

Bearbeiten einer Richtlinie

Du kannst eine vorhandenen Richtlinie bearbeiten. Beispielsweise kannst du Einschränkungen einer Richtlinie hinzufügen oder daraus entfernen.

  1. Zeigen Sie die Seite „Richtlinien für Codespaces“ an. Weitere Informationen findest du unter Hinzufügen einer Richtlinie zum Definieren der zulässigen Images.
  2. Klicke auf den Namen der Richtlinie, die du bearbeiten möchtest.
  3. Klicke neben der Einschränkung „Basisimages“ auf .
  4. Hinzufügen oder Entfernen von Bildreferenzen.
  5. Klicken Sie auf Speichern.

Löschen einer Richtlinie

  1. Zeigen Sie die Seite „Richtlinien für Codespaces“ an. Weitere Informationen findest du unter Hinzufügen einer Richtlinie zum Definieren der zulässigen Images.

  2. Klicke rechts neben der Richtlinie, die du löschen möchtest, auf .

    Screenshot einer Richtlinie mit dunkelorange umrandeter Schaltfläche „Löschen“ (Papierkorbsymbol).