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 Workstation-Konfigurationen verwendet oder als Basis-Images beim Erstellen von benutzerdefinierten Container-Images mit dem FROM-Befehl von Docker verwendet werden.

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/clion:latest CLion IDE Nur über JetBrains Gateway zugänglich.
Informationen zur Installation und zum Einstieg 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 zum Einstieg 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 zum Einstieg 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 zum Einstieg 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 zum Einstieg 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 zum Einstieg 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 zum Einstieg 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 zum Einstieg finden Sie unter Code mit lokalen JetBrains-IDEs entwickeln.

Liste der Basisbilder von Drittanbietern

Drittanbieterbild Drittanbieter
us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest Posit Workbench (einschließlich RStudio Pro)

Wenn Probleme mit der Posit Workbench IDE oder dem Posit Workbench-Container-Image auftreten, melden Sie sie bitte an Posit auf GitHub.

Struktur des Cloud Workstations-Basis-Images

Cloud Workstations-Basis-Images haben die folgende Struktur:

  • Die Datei mit dem Basis-Image-Einstiegspunkt ist auf /google/scripts/entrypoint.sh festgelegt.
  • Beim Starten führen Basis-Images Dateien unter /etc/workstation-startup.d/* in lexikalischer Reihenfolge aus, um die Workstation-Umgebung zu initialisieren.

    Die Dateien und ihr Verhalten sind:

    • 000_configure-docker.sh: Docker wird auf der Workstation konfiguriert und ausgeführt.
    • 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 Starten der Workstation hinzugefügt werden, nicht in der Dockerfile.

    • 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.

  • In Cloud Workstations werden Docker-Images im Basisverzeichnis unter /home/.docker_data gespeichert, damit sie zwischen Sitzungen erhalten bleiben.

Wenn Sie beim Starten der Workstation zusätzliche Funktionen hinzufügen möchten, fügen Sie Ihre Scripts in das Verzeichnis /etc/workstation-startup.d/ ein:

  • Scripts in diesem Verzeichnis werden standardmäßig als Root ausgeführt. Wenn Sie die Scripts als anderer Nutzer ausführen möchten, verwenden Sie den Befehl runuser.

  • Da Scripts in lexikalischer Reihenfolge ausgeführt werden, empfehlen wir, den Scripts eine dreistellige Zahl vorangestellt zu geben, die größer als 200 ist.

Wenn Sie ein Workstation-Image nicht erweitern möchten, können Sie stattdessen ein customize_environment-Script in Ihrem Basisverzeichnis erstellen.

Änderungen am Basisverzeichnis

Wenn in der Workstation-Konfiguration ein dauerhaftes Basisverzeichnis angegeben ist (was das Standardverhalten ist), wird ein nichtflüchtiger Speicher, der das Basisverzeichnis unterstützt, zur Laufzeit dynamisch an den Container angehängt. Dabei werden Änderungen überschrieben, die beim Erstellen des Container-Images am Verzeichnis /home vorgenommen wurden.

Wenn Sie Updates beibehalten möchten, ändern Sie das Verzeichnis /home während der Containerlaufzeit. Fügen Sie dazu ein Script in das Verzeichnis /etc/workstation-startup.d oder eine benutzerspezifische Konfiguration in das Verzeichnis /etc/profile.d hinzu. Um den Vorgang zu beschleunigen, können Sie das Einrichtungsskript als Hintergrundprozess ausführen. Fügen Sie dazu am Ende des Befehls ein kaufmännisches Und (&) hinzu, damit der Containerstart nicht blockiert wird.

Beispiele für Konfigurationen zur Buildzeit, die in die Containerlaufzeit verschoben werden sollten:

  • Nutzerspezifische git-Konfiguration
  • git-Repositories, die in das 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 während der Laufzeit dynamisch an den Container angehängt wird, müssen Nutzer beim Starten der Workstation hinzugefügt werden, nicht in der Dockerfile. 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 Script 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

Die Basis-Images von Cloud Workstations sind mit einer Reihe von Tools vorinstalliert, die über Secure APT aus verschiedenen Repositories von Drittanbietern abgerufen wurden. Im Rahmen der Installation werden die von den Repository-Inhabern bereitgestellten öffentlichen Schlüssel mit gpg importiert und in einzelne Dateien unter /usr/share/keyrings/ abgelegt. Auf diese Dateien wird in den entsprechenden list-Dateien unter /etc/apt/sources.list.d/ verwiesen. So kann apt die Integrität eines bestimmten Repositories bei der Interaktion mit ihm überprüfen.

Manchmal ändern Repository-Inhaber von Drittanbietern den öffentlichen Schlüssel, der zur Validierung der Integrität ihres Repositorys verwendet wird. In diesem Fall zeigt apt bei der Interaktion mit dem Repository einen Fehler an. Sie können /google/scripts/refresh-preinstalled-apt-keys.sh verwenden, um dieses potenzielle Problem zu beheben. Mit diesem Tool werden die neuesten Versionen der vorinstallierten öffentlichen Schlüssel abgerufen und wieder importiert.

Installierte IDE-Versionen auflisten

Auf mehreren Cloud Workstations-Basis-Images ist eine IDE vorinstalliert. Im enthaltenen /google/scripts/preinstalled-ide-versions.sh-Script finden Sie den Namen und die Versionsinformationen der im Image installierten IDEs.

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, setzen Sie die Umgebungsvariable CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO beim Erstellen der Workstation-Konfiguration auf true.

So legen Sie diese Umgebungsvariable über die Google Cloud Console beim Erstellen der Workstationkonfiguration fest:

  1. Führen Sie beim Erstellen der Workstation-Konfiguration die Konfiguration für die allgemeinen Informationen und die Maschinenkonfiguration durch.
  2. Maximieren Sie im Dialogfeld Umgebungsanpassung den Bereich 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.

Bild anpassen, ohne es zu verlängern

Aus praktischen Gründen wird in allen Basis-Images von Cloud Workstations geprüft, 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 Starten jedes Script oder Binary ausführen. Anders als .profile oder .bashrc wird das Script nur einmal beim Starten der Workstation ausgeführt, nicht einmal für jede Shell-Anmeldung.

Da das customize_environment-Script als user ausgeführt wird, müssen Sie beim Schreiben des Scripts die Berechtigungen nach Bedarf aktualisieren. Wenn Sie beispielsweise Emacs jedes Mal installieren möchten, wenn Ihre Workstation gestartet wird, könnte der Inhalt von customize_environment in etwa so aussehen:

#!/bin/bash
sudo apt-get update
sudo apt-get install -y emacs

Die Ausführungsprotokolle für customize_environment finden Sie im Container unter /var/log/customize_environment. Sie werden auch in die Containerausgabeprotokolle geschrieben. Nach 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, sind die vom Script installierten Pakete möglicherweise bereits kurz nach dem Start der Workstation verfügbar.

Nächste Schritte