Benutzerdefinierte Workspace-Basisimages
Das Standard-Basisimage für Workspaces enthält bereits viele nützliche Tools und
Bibliotheken. Du kannst jedoch eigene, benutzerdefinierte Basisimages erstellen. Ein Grund,
Basisimages anzupassen, sind Pakete, die nicht über Nix verfügbar sind, sondern
über apt installiert werden müssen.
Die Codesphere OMS CLI bietet eine praktische Möglichkeit, eigene benutzerdefinierte Basisimages zu erstellen.
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 generiert 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 generierte Dockerfile, um deine benutzerdefinierten Abhängigkeiten hinzuzufügen.
- Als Best Practice solltest du das Dockerfile in einem Unterverzeichnis ablegen, z. B.
./docker. Dadurch wird sichergestellt, dass im folgendendocker build-Befehl nur die notwendigen Dateien an den Docker-Daemon gesendet werden. - Entnimm 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 das Image und pushe es 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, achte aber darauf, dass der Tag deines benutzerdefinierten Images exakt mit dem Tag des ursprünglichen Basisimages übereinstimmt. Stimmen die Tags nicht überein, kann Codesphere dein benutzerdefiniertes Image beim Starten von Workspaces derzeit nicht finden.