Vorkonfigurierte Basis-Images

Google Cloud verwaltet die folgenden Basis-Images, die für die Verwendung mit Cloud Workstations entwickelt wurden.

Liste der vorkonfigurierten Basis-Images

Diese Images können direkt in Arbeitsstationskonfigurationen oder als Basis-Images beim Erstellen benutzerdefinierter Container-Images mit dem Docker-Befehl FROM verwendet werden.

Bild 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/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 der Drittanbieter-Basisbilder

Drittanbieterbild 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 GitHub an Posit.

Struktur von Cloud Workstations-Basis-Images

Cloud Workstations-Basis-Images haben die folgende definierte Struktur:

  • Die Einstiegspunktdatei des Basis-Images ist auf /google/scripts/entrypoint.sh festgelegt.
  • Beim Start werden in Basis-Images Dateien unter /etc/workstation-startup.d/* in lexikografischer Reihenfolge ausgeführt, um die Workstation-Umgebung zu initialisieren.

    Die Dateien und ihr Verhalten sind wie folgt:

    • 000_configure-docker.sh: Konfiguriert und führt Docker auf der Workstation aus.
    • 010_add-user.sh: Erstellt den Standardnutzer in Cloud Workstations.

      Da die persistente Festplatte 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 sshd-Dienst im Container.

    • 030_customize-environment.sh: Führt /home/user/.workstation/customize_environment als user aus.

    • 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 Starten 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 Arbeitsstation nicht erweitern möchten, können Sie alternativ ein customize_environment-Skript in Ihrem Home-Verzeichnis erstellen.

Änderungen am Basisverzeichnis

Wenn in der Workstation-Konfiguration 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. Bei diesem Prozess werden Änderungen überschrieben, die während des Erstellens des Container-Images am Verzeichnis /home vorgenommen wurden.

Wenn Sie Aktualisierungen beibehalten möchten, ändern Sie das Verzeichnis /home zur Containerlaufzeit, indem Sie ein Skript im Verzeichnis /etc/workstation-startup.d oder eine Konfiguration pro Nutzer im Verzeichnis /etc/profile.d hinzufügen. Um den Vorgang zu beschleunigen, sollten Sie das Einrichtungs-Script als Hintergrundprozess ausführen (fügen Sie am Ende des Befehls ein kaufmännisches Und, &, hinzu), um zu vermeiden, dass der Containerstart blockiert wird.

Beispiele für Build-Zeit-Konfigurationen, die in die Containerlaufzeit verschoben werden sollten:

  • Nutzerspezifische git-Konfiguration
  • git-Repositories, die im Basisverzeichnis geklont wurden
  • Direkte Nutzerkonfiguration, z. B. durch Platzieren von Dateien in einem $HOME/.config-Verzeichnis
  • Nutzer erstellen

Nutzer erstellen und ändern

Da die persistente Festplatte 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 Nutzer ändern oder zusätzliche Nutzer 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 sichere APT-Schlüssel aktualisieren

Auf Cloud Workstations-Basis-Images sind eine Reihe von Tools vorinstalliert, die über Secure APT aus verschiedenen Drittanbieter-Repositories bezogen wurden. Im Rahmen der Installation 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 den entsprechenden list-Dateien unter /etc/apt/sources.list.d/ verwiesen. So kann apt die Integrität eines bestimmten Repositorys bei der Interaktion damit überprüfen.

Gelegentlich ändern Drittanbieter den öffentlichen Schlüssel, der zur Validierung der Integrität ihres Repositorys verwendet wird. In diesem Fall wird in apt eine Fehlermeldung angezeigt, wenn Sie mit dem Repository interagieren. 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.

Installierte IDE-Versionen auflisten

Auf mehreren Cloud Workstations-Basis-Images ist eine IDE vorinstalliert. Das enthaltene /google/scripts/preinstalled-ide-versions.sh-Script listet den Namen und die Versionsinformationen der im Image installierten IDEs auf.

sudo-Root-Berechtigungen deaktivieren

Der Standardnutzer der Arbeitsstation hat sudo-Root-Zugriffsberechtigungen in diesen Containern. Wenn Sie den Root-Zugriff auf den Docker-Container deaktivieren möchten, setzen Sie beim Erstellen der Workstation-Konfiguration die Umgebungsvariable CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO auf true.

So legen Sie diese Umgebungsvariable über die Google Cloud -Konsole fest, wenn Sie Ihre Workstationkonfiguration erstellen:

  1. Wenn Sie Ihre Workstationkonfiguration erstellen, füllen Sie die Konfiguration für „Grundlegende Informationen“ und „Maschinenkonfiguration“ aus.
  2. Maximieren Sie im Dialogfeld Umgebung anpassen den Abschnitt Erweiterte Containeroptionen und wählen Sie Umgebungsvariablen aus.
  3. Klicken Sie auf HinzufügenVariable hinzufügen.
  4. Geben Sie CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO und true als Wert ein.

Anpassen ohne Bild zu erweitern

Alle Cloud Workstations-Basis-Images prüfen, ob sich unter /home/user/.workstation/customize_environment eine ausführbare Datei befindet. Falls ja, wird sie im Hintergrund als user ausgeführt. So können Sie beim Start beliebige Skripts oder Binärdateien ausführen. Anders als bei .profile oder .bashrc wird das Skript nur einmal beim Starten der Workstation ausgeführt und nicht bei jeder Shell-Anmeldung.

Da das customize_environment-Skript als user ausgeführt wird, müssen Sie die Berechtigungen beim Schreiben des Skripts entsprechend aktualisieren. Wenn Sie beispielsweise Emacs bei jedem Start Ihrer Workstation installieren möchten, 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. Sie werden auch in die Container-Ausgabelogs 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 die durch das Skript installierten Pakete bereits wenige Augenblicke nach dem Start der Workstation verfügbar sein.

Inaktivitätszeitüberschreitungen 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 Inaktivitätszeitüberschreitungen heruntergefahren wird, wenn Sie Hintergrundprozesse ohne direkte Interaktion ausführen.

Nächste Schritte