Google Cloud verwaltet die folgenden Basis-Images für Cloud Workstations, die von den Google Cloud's Standard-Basis-Images abgeleitet sind.
Liste vorkonfigurierter Basis-Images
Diese Images können direkt in Workstationkonfigurationen verwendet werden,
oder sie können als Basis-Images dienen, wenn Sie
benutzerdefinierte Container-Images
mit dem Befehl FROM von Docker erstellen.
| Image | Beschreibung |
|---|---|
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest | Cloud Workstations-Basiseditor, Code OSS für Cloud Workstations, basierend auf Code-OSS. (Standardeinstellung) |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest | Basis-Image ohne installierte IDE. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss-cuda:latest | Cloud Workstations-Basiseditor, Code OSS für Cloud Workstations, basierend auf Code-OSS mit NVIDIA CUDA Toolkit. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest | CLion-IDE. Nur über JetBrains Gateway zugänglich. Informationen zur Installation und zu den ersten Schritten finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest | GoLand-IDE. Nur über JetBrains Gateway zugänglich. Informationen zur Installation und zu den ersten Schritten finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest | IntelliJ IDEA Ultimate-IDE. Nur über JetBrains Gateway zugänglich. Informationen zur Installation und zu den ersten Schritten finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest | PhpStorm-IDE. Nur über JetBrains Gateway zugänglich. Informationen zur Installation und zu den ersten Schritten finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest | PyCharm Professional-IDE. Nur über JetBrains Gateway zugänglich. Informationen zur Installation und zu den ersten Schritten finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rider:latest | Rider-IDE. Nur über JetBrains Gateway zugänglich. Informationen zur Installation und zu den ersten Schritten finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest | RubyMine-IDE. Nur über JetBrains Gateway zugänglich. Informationen zur Installation und zu den ersten Schritten finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest | WebStorm-IDE. Nur über JetBrains Gateway zugänglich. Informationen zur Installation und zu den ersten Schritten finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln. |
Liste von Basis-Images von Drittanbietern
| Image von Drittanbietern | Drittanbieter |
|---|---|
| us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest | Posit Workbench (einschließlich RStudio Pro) |
Wenn Sie Probleme mit der Posit Workbench-IDE oder mit dem Posit Workbench Container-Image haben, melden Sie sie auf GitHub an Posit.
Struktur von Cloud Workstations-Basis-Images
Cloud Workstations-Basis-Images haben die folgende definierte Struktur:
- Die Einstiegsdatei des Basis-Images ist auf
/google/scripts/entrypoint.shfestgelegt. Beim Start werden in Basis-Images Dateien unter
/etc/workstation-startup.d/*in lexikografischer Reihenfolge ausgeführt, um die Workstationumgebung zu initialisieren.Die Dateien und ihr Verhalten sind wie folgt:
000_configure-docker.sh: Konfiguriert und führt Docker in der Workstation aus.010_add-user.sh: Erstellt den Standardnutzer in Cloud Workstations.Da der nichtflüchtige Speicher dynamisch an den Container angehängt wird, müssen Nutzer beim Start der Workstation und nicht im Dockerfile hinzugefügt werden.
020_start-sshd.sh: Startet den Dienstsshdim Container.030_customize-environment.sh: Führt/home/user/.workstation/customize_environmentalsuseraus.110_start-$IDE.sh: Startet die IDE für das Image.
Cloud Workstations speichert Docker-Images im Basisverzeichnis unter
/home/.docker_data, damit die Images zwischen Sitzungen erhalten bleiben.
Wenn Sie beim Start der Workstation zusätzliche Funktionen hinzufügen möchten, fügen Sie Ihre Skripts im Verzeichnis /etc/workstation-startup.d/ hinzu:
Skripts in diesem Verzeichnis werden standardmäßig als Root ausgeführt. Wenn Sie die Skripts als anderer Nutzer ausführen möchten, verwenden Sie den Befehl
runuser.Da Skripts in lexikografischer Reihenfolge ausgeführt werden, empfehlen wir, den Skripts eine dreistellige Zahl voranzustellen, die größer als 200 ist.
Wenn Sie das Image einer Workstation nicht erweitern möchten, können Sie alternativ ein `customize_environment`-Skript in Ihrem Basisverzeichnis erstellen.
Änderungen am Basisverzeichnis
Wenn in der Workstationkonfiguration ein nichtflüchtiges Basisverzeichnis angegeben ist (Standardverhalten), wird ein nichtflüchtiger Speicher, der das Basisverzeichnis unterstützt, zur Laufzeit dynamisch an den Container angehängt. Dadurch werden Änderungen überschrieben, die beim Erstellen des Container-Images am Verzeichnis /home vorgenommen wurden.
Wenn Sie Aktualisierungen beibehalten möchten, ändern Sie das Verzeichnis /home zur Laufzeit des Containers. Fügen Sie dazu ein Skript im Verzeichnis /etc/workstation-startup.d hinzu oder fügen Sie eine Konfiguration pro Nutzer im Verzeichnis /etc/profile.d hinzu.
Um den Vorgang zu beschleunigen, können Sie das Setupscript als Hintergrundprozess ausführen (fügen Sie am Ende des Befehls ein kaufmännisches Und (&) hinzu), um zu verhindern, dass der Start des Containers blockiert wird.
Einige Beispiele für Konfigurationen zur Build-Zeit, die zur Laufzeit des Containers verschoben werden sollten:
git-Konfiguration pro Nutzergit-Repositories, die im Basisverzeichnis geklont wurden- Direkte Nutzerkonfiguration, z. B. das Platzieren von Dateien in einem Verzeichnis
$HOME/.config - Nutzer erstellen
Nutzer erstellen und ändern
Da der nichtflüchtige Speicher zur Laufzeit dynamisch an den Container angehängt wird, müssen Nutzer beim Start der Workstation und nicht im Dockerfile hinzugefügt werden. Wenn Sie zusätzliche Nutzer ändern oder erstellen möchten, empfehlen wir, /etc/workstation-startup.d/010_add-user.sh zu aktualisieren oder ein eigenes Skript zu erstellen, das beim Start ausgeführt wird.
Außerdem können Sie das Standard-Bash-Profil für die Nutzer ändern, indem Sie die Dateien in /etc/profile.d aktualisieren.
Vorkonfigurierte Secure APT-Schlüssel aktualisieren
In Cloud Workstations-Basis-Images sind eine Reihe von Tools vorinstalliert, die mit Secure APT aus verschiedenen Drittanbieter-Repositories abgerufen wurden. Im Rahmen des Installationsprozesses werden öffentliche Schlüssel, die von den Repository-Inhabern bereitgestellt werden, mit gpg importiert und in einzelnen Dateien unter /usr/share/keyrings/ platziert. Auf diese Dateien wird
in entsprechenden list Dateien unter /etc/apt/sources.list.d/ verwiesen.
So kann apt die Integrität eines bestimmten Repositorys überprüfen, wenn mit ihm interagiert wird.
Gelegentlich entscheiden sich die Inhaber von Drittanbieter-Repositories möglicherweise, den öffentlichen Schlüssel zu ändern, der zur Validierung der Integrität ihres Repositorys verwendet wird. In diesem Fall zeigt apt einen Fehler an, wenn mit ihm interagiert wird. Um dieses potenzielle Problem zu beheben, können Sie /google/scripts/refresh-preinstalled-apt-keys.sh verwenden. Damit werden die neuesten Versionen der vorinstallierten öffentlichen Schlüssel abgerufen und neu importiert.
Sie können dieses Skript auch direkt in Ihrem benutzerdefinierten Dockerfile ausführen, bevor Sie apt-get update ausführen:
# Refresh the preinstalled APT keys
RUN /google/scripts/refresh-preinstalled-apt-keys.sh
RUN apt-get update
Installierte IDE-Versionen auflisten
In einigen Cloud Workstations-Basis-Images ist eine IDE vorinstalliert. Das enthaltene Skript /google/scripts/preinstalled-ide-versions.sh listet den Namen und die Versionsinformationen der im Image installierten IDEs auf.
sudo-Root-Berechtigungen deaktivieren
Der Standardnutzer der Workstation hat in diesen Containern sudo-Root-Zugriffsberechtigungen. Wenn Sie den Root-Zugriff auf den Docker-Container deaktivieren möchten, legen Sie beim Erstellen der Workstationkonfiguration die Umgebungsvariable CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO auf true fest.
So legen Sie diese Umgebungsvariable über die Google Cloud Konsole fest, wenn Sie Ihre Workstationkonfiguration erstellen:
- Wenn Sie Ihre Workstationkonfiguration erstellen, füllen Sie die Konfiguration für „Grundlegende Informationen“ und „Maschinenkonfiguration“ aus.
- Maximieren Sie im Dialogfeld Umgebung anpassen den Abschnitt Erweiterte Containeroptionen und wählen Sie Umgebungsvariablen aus.
- Klicken Sie auf **Variable hinzufügen**.
- Geben Sie
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDOundtrueals Wert ein.
Anpassen ohne Erweiterung eines Images
Alle Cloud Workstations-Basis-Images prüfen, ob
eine ausführbare Datei unter /home/user/.workstation/customize_environment
vorhanden ist. Wenn sie vorhanden ist, wird sie im Hintergrund als user ausgeführt. So können Sie beim Start ein beliebiges Skript oder eine beliebige Binärdatei ausführen. Anders als bei .profile oder .bashrc wird das Skript nur einmal beim Start der Workstation ausgeführt und nicht einmal für jede Shell-Anmeldung.
Da das Skript customize_environment als user ausgeführt wird, müssen Sie die Berechtigungen beim Schreiben des Skripts entsprechend aktualisieren. Wenn Sie beispielsweise Emacs jedes Mal installieren möchten, wenn Ihre Workstation gestartet wird, könnte der Inhalt von customize_environment so aussehen:
#!/bin/bash
sudo apt-get update
sudo apt-get install -y emacs
Ausführungsprotokolle für customize_environment finden Sie im Container unter
/var/log/customize_environment und sie werden auch in die
Ausgabeprotokolle des Containers geschrieben.
Bei erfolgreicher Ausführung von customize_environment wird eine Datei in
/var/run/customize_environment_done erstellt. Da customize_environment parallel zum Start der Workstation ausgeführt wird, können Pakete, die vom Skript installiert wurden, bereits wenige Augenblicke nach dem Start der Workstation verfügbar sein.
Leerlauftimeouts verhindern
Alle Cloud Workstations-Basis-Images enthalten ein vorinstalliertes Skript unter /google/scripts/keep_alive.sh. Dieses Skript sendet regelmäßig Keep-Alive-Nachrichten, die verhindern können, dass die Workstation aufgrund von Leerlauftimeouts heruntergefahren wird, wenn Sie Hintergrundprozesse ohne direkte Interaktion ausführen.
Inaktive Zeitlimits mit KI-Agents verhindern
Außerdem enthalten Cloud Workstations-Basis-Images Beispielkonfigurationsskripts für Agents unter /google/samples/agents/keepalive/. Mit diesen Beispielkonfigurationen können Sie KI-Codierungs-Agents (z. B. Claude Code und Antigravity CLI) in der Workstation so konfigurieren, dass die Workstation automatisch aktiv bleibt, während sie aktiv an Aufgaben arbeiten. Wenn der Agent seine Aufgaben beendet oder pausiert, um auf eine Nutzereingabe zu warten, sendet das Skript keine Keep-Alive-Nachrichten mehr, sodass die Workstation aufgrund von Inaktivität beendet werden kann.
Diese Konfigurationen funktionieren am besten, wenn die Workstationkonfiguration so festgelegt ist, dass die Workstation angehalten wird (idleAction auf SUSPEND gesetzt). So kann die Workstation den Speicherstatus speichern und nahtlos fortgesetzt werden, wenn Sie zurückkehren.
Weitere Informationen zum Einrichten von agentgestützten Workflows und Keep-Alive-Hooks finden Sie unter Agentoptimierte Entwicklung.
Nächste Schritte
- Container-Images anpassen.
- Container-Image-Neuerstellungen automatisieren um Basis-Image-Updates mit Cloud Build und Cloud Scheduler zu synchronisieren.
- Best Practices für die Sicherheit einrichten.