Zum Hauptinhalt springen
Version: Weekly Build

Benutzerdefinierte Workspace-Basisimages

Das Standard-Basisimage für Workspaces bringt bereits viele nützliche Tools und Bibliotheken mit. Du kannst jedoch eigene benutzerdefinierte Basisimages erstellen. Ein Grund, Basisimages anzupassen, sind Pakete, die nicht über Nix verfügbar sind, aber über apt installiert werden müssen.

Die Codesphere-OMS-CLI bietet einen bequemen Weg, um mit dem Erstellen eigener benutzerdefinierter Basisimages zu beginnen.

Voraussetzungen:

  1. Installiere auf deinem Host Docker und das Buildx-Plugin (falls noch nicht installiert): sudo apt install docker.io docker-buildx
  2. Installiere die OMS-CLI wie unter https://github.com/codesphere-cloud/oms beschrieben.
  3. Verwende den Befehl extend baseimage in der OMS-CLI, siehe oms beta extend baseimage -h
  4. Dieser Befehl extrahiert das Standard-Basisimage aus dem Codesphere-Installer-Bundle, lädt es in deinen lokalen Docker-Image-Cache und erzeugt ein Dockerfile, das du erweitern kannst.
  5. Bestätige mit docker image ls, dass das Basisimage (ghcr.io/codesphere-cloud/codesphere-monorepo/workspace-agent-VERSION) lokal verfügbar ist.
  6. Bearbeite das erzeugte Dockerfile, um deine benutzerdefinierten Abhängigkeiten hinzuzufügen.
  7. Platziere das Dockerfile als bewährte Praxis in einem Unterverzeichnis, z. B. ./docker. So wird sichergestellt, dass beim folgenden docker build-Befehl nur die notwendigen Dateien an den Docker-Daemon gesendet werden.
  8. Übernimm den Basisimage-Tag aus dem Dockerfile, z. B. codesphere-1-67-1-4dd9b346cc, und verwende denselben Tag für dein benutzerdefiniertes Image.
  9. Baue das benutzerdefinierte Image mit folgendem Befehl: docker buildx build -f ./docker/custom.Dockerfile -t workspace-agent-24.04-mycorp:<TAG_TO_USE> --load ./docker
  10. Tagge und pushe das Image mit demselben Tag wie das Originalimage in deine eigene Registry: docker tag workspace-agent-24.04-mycorp:<TAG_TO_USE> <YOUR_REGISTRY_URL>/workspace-agent-24.04-mycorp:<TAG_TO_USE> docker login <YOUR_REGISTRY_URL> # falls noch nicht angemeldet docker push <YOUR_REGISTRY_URL>/workspace-agent-24.04-mycorp:<TAG_TO_USE>

warnung

Der Image-Name kann frei gewählt werden, aber überprüfe sorgfältig, dass der Tag deines benutzerdefinierten Images exakt dem Tag des ursprünglichen Basisimages entspricht. Stimmen die Tags nicht überein, kann Codesphere dein benutzerdefiniertes Image beim Starten von Workspaces derzeit nicht finden.