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 densshd
-Dienst im Container.030_customize-environment.sh
: Führt/home/user/.workstation/customize_environment
alsuser
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:
- Führen Sie beim Erstellen der Workstation-Konfiguration die Konfiguration für die allgemeinen Informationen und die Maschinenkonfiguration durch.
- Maximieren Sie im Dialogfeld Umgebungsanpassung den Bereich Erweiterte Containeroptionen und wählen Sie Umgebungsvariablen aus.
- Klicken Sie auf HinzufügenVariable hinzufügen.
- Geben Sie
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
undtrue
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
- Container-Images anpassen
- Automatisieren Sie das Neuaufbauen von Container-Images, um Basis-Image-Updates mit Cloud Build und Cloud Scheduler zu synchronisieren.
- Best Practices für die Sicherheit einrichten