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:
- Installiere auf deinem Host Docker und das Buildx-Plugin (falls noch
nicht installiert):
sudo apt install docker.io docker-buildx - Installiere die OMS-CLI wie unter https://github.com/codesphere-cloud/oms beschrieben.
- Verwende den Befehl
extend baseimagein der OMS-CLI, sieheoms beta extend baseimage -h - 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.
- Bestätige mit
docker image ls, dass das Basisimage (ghcr.io/codesphere-cloud/codesphere-monorepo/workspace-agent-VERSION) lokal verfügbar ist. - Bearbeite das erzeugte Dockerfile, um deine benutzerdefinierten Abhängigkeiten hinzuzufügen.
- Platziere das Dockerfile als bewährte Praxis in einem Unterverzeichnis,
z. B.
./docker. So wird sichergestellt, dass beim folgendendocker build-Befehl nur die notwendigen Dateien an den Docker-Daemon gesendet werden. - Übernimm den Basisimage-Tag aus dem Dockerfile, z. B.
codesphere-1-67-1-4dd9b346cc, und verwende denselben Tag für dein benutzerdefiniertes Image. - 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 - 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 angemeldetdocker 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.