Die
vorkonfigurierte Basis-Images
die von Cloud Workstations bereitgestellt werden,
nur eine minimale Umgebung mit IDE,
grundlegende Linux-Terminal- und Sprachtools sowie einen sshd
-Server. Um den Vorgang zu beschleunigen,
für die Einrichtung bestimmter Anwendungsfälle in der Entwicklungsumgebung, können Sie
Container-Images, die diese Basis-Images auf Vorinstallierte Tools und
und die Automatisierungsskripts ausführen.
Für benutzerdefinierte Container-Images empfehlen wir die Einrichtung einer Pipeline, diese Images neu erstellen, wenn das Cloud Workstations-Basis-Image aktualisiert wird, in neben dem Ausführen eines Tools zum Scannen von Containern, z. B. Artefaktanalyse in prüfen Sie alle zusätzlichen Abhängigkeiten, die Sie hinzugefügt haben. Sie sind verantwortlich für Verwalten und Aktualisieren von benutzerdefinierten Paketen und Abhängigkeiten, die benutzerdefinierten Images hinzugefügt wurden.
Hinweise
Sie benötigen eine Maschine mit Tools zum Erstellen von Container-Images wie für Docker und zum Übertragen von Images Artifact Registry (oder Container Registry) mithilfe des Google Cloud CLI Sie können Cloud Workstations oder den Cloud Shell-Editor verwenden, um die folgenden Schritte ausführen, bei denen das Tool vorinstalliert ist.
Wählen Sie aus unserem Liste der unterstützten Basis-Images zum Beispiel
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
Alternativ können Sie ein eigenes Container-Image oder ein externes Container-Image verwenden. Container-Images erstellen, indem Sie der Anleitung Eigenes Container-Image verwenden
Erstellen Sie einen Ordner, z. B.
CUSTOM_IMAGE_FOLDER
und einen Dockerfile in diesem Ordner, das das ausgewählte Basis-Image erweitert, wie in die folgenden Beispiele.
Struktur des Basis-Images von Cloud Workstations
Basis-Images von Cloud Workstations haben die folgende definierte Struktur:
- Die Einstiegspunktdatei für das Basis-Image ist auf
/google/scripts/entrypoint.sh
festgelegt. Beim Start führen Basis-Images unter
/etc/workstation-startup.d/*
folgende Dateien aus: lexikografische Reihenfolge zum Initialisieren der Workstationumgebung.Die Dateien und ihr Verhalten sehen so aus:
000_configure-docker.sh
: Konfiguriert Docker und führt es im .010_add-user.sh
: Erstellt den Standardnutzer in Cloud Workstations.Da der nichtflüchtige Speicher dynamisch an den Container angehängt wird, Nutzer müssen beim Start der Workstation hinzugefügt werden, nicht im Dockerfile.
020_start-sshd.sh
: startet densshd
-Dienst im Container.110_start-$IDE.sh
: Startet die IDE für das Image.
Cloud Workstations speichert Docker-Images im Basisverzeichnis unter
/home/.docker_data
, damit die Bilder zwischen Sitzungen beibehalten werden.
Um beim Start der Workstation zusätzliche Funktionen hinzuzufügen, fügen Sie Ihre Skripts in
dem Verzeichnis /etc/workstation-startup.d/
:
Skripts in diesem Verzeichnis werden standardmäßig als Root ausgeführt. Um die Skripts auszuführen als verwenden Sie den Befehl
runuser
.Da Skripts in lexikografischer Reihenfolge ausgeführt werden, sollten Sie Stellen Sie den Skripts eine dreistellige Zahl voran, die größer als 200 ist.
Änderungen am Basisverzeichnis
Wenn in der Workstationkonfiguration ein persistentes Basisverzeichnis angegeben ist
(dies ist das Standardverhalten), ein nichtflüchtiger Speicher, der das Basisverzeichnis
wird zur Laufzeit dynamisch an den Container angehängt. Bei diesem Vorgang wird die
Änderungen, die beim Erstellen des Container-Images am Verzeichnis /home
vorgenommen wurden.
Ändern Sie das Verzeichnis /home
zur Containerlaufzeit, um die Aktualisierungen beizubehalten
indem Sie im Verzeichnis /etc/workstation-startup.d
ein Skript hinzufügen,
oder durch Hinzufügen einer nutzerspezifischen Konfiguration im Verzeichnis /etc/profile.d
.
Sie können das Einrichtungsskript im Hintergrund ausführen, um den Vorgang zu beschleunigen.
(fügen Sie am Ende des Befehls ein kaufmännisches Und-Zeichen (&
) hinzu), um zu vermeiden,
den Containerstart blockieren.
Beispiele für die Konfiguration der Build-Zeit, die in den Container verschoben werden sollte Laufzeit:
git
-Konfiguration pro Nutzergit
Repositories, die in das Basisverzeichnis geklont wurden- Direkte Nutzerkonfiguration, z. B. das Ablegen von Dateien in einem
$HOME/.config
-Verzeichnis - Nutzer erstellen
Nutzer erstellen und bearbeiten
Da der nichtflüchtige Speicher
zur Laufzeit dynamisch an den Container angehängt wird,
Nutzer müssen beim Start der Workstation hinzugefügt werden, nicht im Dockerfile. So ändern Sie die Einstellungen:
oder zusätzliche Nutzer erstellen, empfehlen wir,
/etc/workstation-startup.d/010_add-user.sh
oder
ein eigenes Skript erstellen,
das beim Start ausgeführt wird.
Darüber hinaus können Sie das Bash-Standardprofil für die Nutzer ändern, indem Sie Folgendes aktualisieren:
die Dateien in /etc/profile.d
.
Vorkonfigurierte sichere APT-Schlüssel aktualisieren
Die Basis-Images von Cloud Workstations sind mit einer Reihe von Tools vorinstalliert
mit Secure APT aus
verschiedenen Drittanbieter-Repositories. Im Rahmen der Installation
werden öffentliche Schlüssel, die von den Repository-Inhabern bereitgestellt wurden, mit gpg
importiert.
und in einzelne Dateien unter /usr/share/keyrings/
platziert. Diese Dateien sind
in den entsprechenden list
-Dateien unter /etc/apt/sources.list.d/
referenziert wird.
Dadurch kann apt
die Integrität eines bestimmten Repositorys prüfen, wenn
damit interagieren.
Gelegentlich können Inhaber von Drittanbieter-Repositorys entscheiden, den öffentlichen Schlüssel zu ändern.
wird verwendet, um die Integrität ihres Repositorys zu prüfen, was dazu führt, dass apt
bei der Interaktion
einen Fehler anzeigen. Um dieses potenzielle Problem zu beheben,
können Sie /google/scripts/refresh-preinstalled-apt-keys.sh
verwenden,
ruft die neuesten Versionen der vorinstallierten öffentlichen Schlüssel ab und importiert sie noch einmal.
Installierte IDE-Versionen auflisten
Auf mehreren Cloud Workstations-Basis-Images ist eine IDE vorinstalliert. Für
finden Sie unter /google/scripts/preinstalled-ide-versions.sh
das die Namen und Versionsinformationen von IDEs auflistet,
auf das Bild.
Root-Berechtigungen von sudo
deaktivieren
Der Standardnutzer der Workstation hat sudo
Root-Zugriffsberechtigung in diesen
Container. Um den Root-Zugriff auf den Docker-Container zu deaktivieren, legen Sie den
Umgebungsvariable CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
auf true
, wenn Sie die Workstationkonfiguration erstellen.
Um diese Umgebungsvariable beim Erstellen über die Google Cloud Console festzulegen Ihre Workstationkonfiguration aus, führen Sie die folgenden Schritte aus:
- Schließen Sie die Konfiguration beim Erstellen der Workstationkonfiguration ab .
- Maximieren Sie im Dialogfeld Umgebungsanpassung Erweiterte Containeroptionen und wählen Sie Umgebungsvariablen aus.
- Klicken Sie auf addVariable hinzufügen.
- Geben Sie
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
undtrue
als Wert ein.
Eigenes Container-Image verwenden
Sie können auch ein eigenes Container-Image oder externe Container-Images verwenden. sofern sie Linux-basiert sind und einen blockierenden Prozess ausführen, wird gestartet.
Beim Einrichten des Dockerfiles muss mit der ENTRYPOINT
-Anweisung ein
wie sleep infinity
blockieren, damit der Container
und nicht sofort zu beenden. Alternativ können Sie auf der Workstation
Konfiguration können Sie im Feld config.container.args
eine
blockieren können.
Wenn Sie Ihr eigenes Container-Image verwenden, beachten Sie Folgendes:
Cloud Workstations erfordert keine zusätzlichen Skripts aus dem Basis-Image von Cloud Workstations.
Sie können sich jedoch die Skripts im
/etc/workstation-startup.d/
ansehen. Verzeichnis in einem Container, in dem das Cloud Workstations-Basis-Image ausgeführt wird. Die Dateinamen geben an, welche Funktion die einzelnen Skripts haben.Wir empfehlen, einen SSH-Server im Container auszuführen. Weitere Informationen finden Sie unter
/etc/workstation-startup.d/020_start-sshd.sh
in der Standardeinstellung Basis-Image um zu erfahren, wie Cloud Workstations dies standardmäßig einrichtet.Wir empfehlen, dass du deine Standard-IDE oder deinen Webserver auf Port
80
ausführst.
Cloud Workstations-Basis-Images erweitern
Wenn Sie ein Cloud Workstations-Basis-Image erweitern, um ein benutzerdefiniertes Image für Ihr Workstation-Umgebung haben, können Sie drei Ansätze verfolgen:
- Fügen Sie Ihrer
Dockerfile
weitere statische Inhalte hinzu, die Sie hinzufügen möchten. - Fügen Sie weitere ausführbare Dateien unter
/etc/workstation-startup.d/
hinzu: den ausgeführten Container anpassen. Dateien in diesem Verzeichnis werden automatisch beim Containerstart in lexikografischer Reihenfolge ausgeführt werden, filename, um sie zum passenden Zeitpunkt beim Start der Workstation auszuführen. - Überschreiben Sie
ENTRYPOINT
in Ihrem Dockerfile, um die Datei vollständig anzupassen. Container-Start.
Beispiele für benutzerdefinierte Dockerfiles
Dieser Abschnitt enthält Beispielszenarien und Anleitungen zum Erstellen eigener Dockerfiles.
Container-Image mit vorinstalliertem emacs
Führen Sie folgenden Befehl aus, um ein Container-Image mit vorinstalliertem emacs
zu erstellen:
Befehle:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN sudo apt update
RUN sudo apt install -y emacs
Container-Image mit Nutzeranpassung
So passen Sie ein Container-Image an:
Skript in
/etc/workstation-startup.d/*
erstellen, das ausgeführt wird nach010_add-user.sh
, z. B.011_customize-user.sh
:#!/bin/bash # Create new group groupadd $GROUP # Add the user to a new group usermod -a -G $GROUP $USERNAME
Ersetzen Sie
$GROUP
durch den neuen Gruppennamen und$USERNAME
durch den Nutzernamen des Nutzers.Wenn Sie das Skript
011_customize-user.sh
genannt haben, fügen Sie den folgende Datei im Dockerfile hinzufügen und ausführbar machen:FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest COPY 011_customize-user.sh /etc/workstation-startup.d/ RUN chmod +x /etc/workstation-startup.d/011_customize-user.sh
Container-Image, das Container-Umgebungsvariablen in SSH-Sitzungen festlegt
Umgebungsvariablen, die auf Workstation-Konfigurations- oder Workstationebene festgelegt sind werden mit dem Befehl „entrypoint“ an direkte Unterprozesse übergeben. Dazu gehören die IDE in den vorkonfigurierten Basis-Images. SSH-Sitzungen sind jedoch nicht untergeordnete Prozesse des Einstiegspunkts und haben diese benutzerdefinierten Variablen festgelegt sind.
Zum Festlegen dieser Umgebungsvariablen in den SSH-Sitzungen richten Sie eine benutzerdefinierte
Container-Image, das diese Umgebungsvariablen aus dem
Einstiegspunktbefehl in die Datei /etc/environment
ein.
Gehen Sie dazu folgendermaßen vor:
Skript in
/etc/workstation-startup.d/*
erstellen, das ausgeführt wird nach010_add-user.sh
, z. B.011_add-ssh-env-variables.sh
:#!/bin/bash # echo "CUSTOM_ENV_VAR=$CUSTOM_ENV_VAR" >> /etc/environment
Ersetzen Sie
CUSTOM_ENV_VAR
durch die gewünschte Umgebungsvariable. Namen.Wenn Sie das Skript
011_add-ssh-env-variables.sh
genannt haben, fügen Sie den folgende Datei im Dockerfile hinzufügen und ausführbar machen:FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest COPY 011_add-ssh-env-variables.sh /etc/workstation-startup.d/ RUN chmod +x /etc/workstation-startup.d/011_add-ssh-env-variables.sh
Container-Image, das die X11-Weiterleitung für SSH-Sitzungen aktiviert
Mit der X11-Weiterleitung können Sie Remote-Apps starten und diese weiterleiten auf einem lokalen Computer anzeigen.
Ändern Sie den OpenSSH-Daemon, um ein Container-Image zu erstellen, das die X11-Weiterleitung aktiviert
Konfigurationsdatei (/etc/ssh/sshd_config
), die von den Cloud Workstations-Basis-Images durch
X11Forwarding yes
(um die X11-Weiterleitung zuzulassen) und AddressFamily inet
anfügen
(um sicherzustellen, dass nur IPv4 verwendet wird). Weitere Informationen zu diesen Suchbegriffen finden Sie im OpenBSD-Web
Seiten über AddressFamily
und
X11Forwarding
.
Hier sehen Sie ein Beispiel-Dockerfile, das die erforderlichen Änderungen vornimmt:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
# Permit X11 forwarding using only IPv4
RUN cat >> /etc/ssh/sshd_config <<-EOF
AddressFamily inet
X11Forwarding yes
EOF
Code OSS for Cloud Workstations in ein anderes Container-Image kopieren
Bei einem mehrstufigen Build können Sie mehrere FROM
-Anweisungen verwenden
im Dockerfile. Jede FROM
-Anweisung kann eine andere Basis verwenden und ermöglicht
Kopieren von Artefakten zwischen Build-Phasen Code OSS für Cloud Workstations hinzufügen
ein anderes Container-Image einen mehrstufigen Build verwenden, um den Anwendungsordner zu kopieren
/opt/code-oss
in das Bild einfügen. Wenn Sie Code OSS für Cloud Workstations starten möchten
Beim Containerstart zusätzlich das Skript /etc/workstation-startup.d/110_start-code-oss.sh
kopieren
in Ihren Container.
Hier sehen Sie ein Beispiel-Dockerfile, mit dem Code OSS in das JetBrains-IntelliJ kopiert wird. Ultimatives Bild. Anschließend können Sie mit beiden IDEs interagieren:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest as code-oss-image
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/jetbrains-intellij:latest
# Copy Code OSS for Cloud Workstations and startup scripts into our custom image
COPY --from=code-oss-image /opt/code-oss /opt/code-oss
COPY --from=code-oss-image /etc/workstation-startup.d/110_start-code-oss.sh /etc/workstation-startup.d/110_start-code-oss.sh
# Use the existing entrypoint script which will execute all scripts in /etc/workstation-startup.d/
ENTRYPOINT ["/google/scripts/entrypoint.sh"]
Container-Image, das IDE-Erweiterungen in Code OSS für Cloud Workstations für die Java-Entwicklung vorinstalliert
So erstellen Sie ein Container-Image, mit dem IDE-Erweiterungen vorinstalliert werden: Führen Sie die folgenden Befehle aus, um die Entwicklung von OSS für Cloud Workstations für Java zum Zeitpunkt der Build-Erstellung zu codieren:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN wget https://open-vsx.org/api/vscjava/vscode-java-debug/0.40.1/file/vscjava.vscode-java-debug-0.40.1.vsix && \
unzip vscjava.vscode-java-debug-0.40.1.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-debug
RUN wget https://open-vsx.org/api/vscjava/vscode-java-dependency/0.19.1/file/vscjava.vscode-java-dependency-0.19.1.vsix && \
unzip vscjava.vscode-java-dependency-0.19.1.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-dependency
RUN wget https://open-vsx.org/api/redhat/java/1.6.0/file/redhat.java-1.6.0.vsix && \
unzip redhat.java-1.6.0.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/redhat-java
RUN wget https://open-vsx.org/api/vscjava/vscode-maven/0.35.2/file/vscjava.vscode-maven-0.35.2.vsix && \
unzip vscjava.vscode-maven-0.35.2.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-maven
RUN wget https://open-vsx.org/api/vscjava/vscode-java-test/0.35.0/file/vscjava.vscode-java-test-0.35.0.vsix && \
unzip vscjava.vscode-java-test-0.35.0.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-test
Vorinstallierte Erweiterungen werden als integrierte Erweiterungen betrachtet.
Du kannst diese Erweiterungen dann nicht mehr aktualisieren und sie werden möglicherweise nicht in
den installierten Abschnitt im
Extensions Marketplace
Sie finden Ihre integrierten Erweiterungen jedoch, indem Sie nach
@builtin
Eine weitere Möglichkeit, Erweiterungen beim Start zu installieren, ist die Ausführung eines
Startskript verfügbar.
Fügen Sie beispielsweise das folgende Startskript unter
/etc/workstation-startup.d/120_install_extensions.sh
:
/opt/code-oss/bin/codeoss-cloudworkstations --install-extension vscjava.vscode-java-debug@0.40.1 \
--install-extension vscjava.vscode-java-dependency@0.19.1 \
--install-extension redhat.java@1.6.0 \
--install-extension vscjava.vscode-maven@0.35.2 \
--install-extension vscjava.vscode-java-test@0.35.0
Mit dieser Methode erscheint die Erweiterung auf im
Extensions Marketplace und Sie
können von dort aus aktualisiert werden.
JetBrains-IDEs und -Plug-ins in Basis-Images installieren
Beim Anpassen von Docker-Images für Workstationkonfigurationen können Sie JetBrains-IDEs und -Plug-ins wie z. B. Cloud Code for IntelliJ in das Basis-Image einfügen. Cloud Workstations-Basis-Images für JetBrains-Produkte umfassen Folgendes: Skripts für folgende Aufgaben:
jetbrains-installer.sh
: JetBrains-IDEs installierenplugin-installer.sh
: Plug-ins wie Cloud Code for IntelliJ installieren
Verwenden Sie diese Skripts nach Bedarf, um das Basis-Image anzupassen und sie mit einem oder nach dem Start der Workstation auszuführen.
Installationsskripts
So rufen Sie die Quelldateien für jetbrains-installer.sh
und
plugin-installer.sh
-Scripts, Workstation mit Workstation starten
Konfiguration, die eines der vordefinierten Images von JetBrains verwendet, stellen Sie eine Verbindung zum
entweder über JetBrains Gateway oder über SSH,
die Skriptdateien im Verzeichnis installer-scripts
, das sich im
Stammverzeichnis gespeichert werden.
Wir empfehlen, diese Skripts zum Zeitpunkt des Container-Builds auszuführen. Laufen vermeiden in einer bereits gestarteten Workstation.
Plug-in-Installationsskript verwenden
Das Skript plugin-installer.sh
verwendet die folgende Syntax:
plugin-installer.sh [-v VERSION] [-d DESTINATION-DIRECTORY] [-c CHECKSUM] [-f] PLUGIN_ID
Ersetzen Sie Folgendes:
VERSION
: optionale Versionsnummer des zu installierenden Plug-ins.DESTINATION-DIRECTORY
: optionales Verzeichnis, in das das Plug-in verschoben wird installiert werden sollte. Wenn kein Wert angegeben ist, wird das Arbeitsverzeichnis verwendet.CHECKSUM
: Optionale SHA-256-Prüfsumme des angeforderten Plug-ins.-f
: Falls angegeben, werden vorhandene Plug-ins überschrieben.PLUGIN_ID
: die erforderliche numerische Plug-in-ID aus dem JetBrains-Marktplatz. Um beispielsweise Dart Verwende6351
als PLUGIN_ID. Hinzufügen Cloud Code for IntelliJ Verwende8079
als PLUGIN_ID.
Führen Sie beispielsweise den folgenden Befehl aus, um die neueste Version des Dart-Plug-ins in IntelliJ zu installieren:
plugin-installer.sh -d /opt/ideaIU/plugins/ 6351
JetBrains-Installationsskript verwenden
Wir empfehlen, dass Sie das JetBrains-Installationsskript verwenden, wenn Sie Vorkonfiguriertes Basis-Image erweitern für JetBrains-IDEs.
Das Skript jetbrains-installer.sh
verwendet die folgende Syntax:
jetbrains-installer.sh IDE [ pinned|latest ]
Ersetzen Sie Folgendes:
IDE
: zu installierende JetBrains-IDE Sie müssen eine verwenden der folgenden IDE-Abkürzungen:IDE Produkt installiert cl
CLion clion
CLion go
GoLand goland
GoLand iiu
Intellij Ultimate intellij
Intellij Ultimate pcp
PyCharm Professional pycharm
PyCharm Professional ps
PHPStorm phpstorm
PHPStorm rd
Rider rider
Rider rm
RubyMine rubymine
RubyMine ws
WebStorm webstorm
WebStorm pinned|latest
: Optional – Verwenden Sie entweder das angepinnte oder aktuelle Version der IDE. Die Standardeinstellung istlatest
.
Führen Sie beispielsweise folgenden Befehl aus, um die neueste Version von Clion zu installieren: Befehl:
jetbrains-installer.sh clion
JetBrains-IDE-Konfigurationsdateien anpassen
Wenn auf den Workstations ein persistentes Basisverzeichnis angegeben ist
Konfiguration, Cloud Workstations-Basis-Images mit JetBrains-IDEs
Konfiguration von $IDE.vmoptions
und $IDE.properties
automatisch beibehalten
Dateien. Wenn Sie den Standardspeicherort dieser Dateien überschreiben möchten, geben Sie
Die Umgebungsvariable CLOUD_WORKSTATIONS_JETBRAINS_PERISTED_CONFIG_DIR
Weitere Informationen finden Sie unter
/etc/workstation-startup.d/120_persist-jetbrains-configs.sh
in beliebigen
JetBrains-Basis-Image für den Lernprozess
wie das in Cloud Workstations standardmäßig eingerichtet wird.
Basis-Docker-Image mit Cloud Code for IntelliJ erweitern
Das folgende Dockerfile-Snippet erweitert ein Basis-Docker-Image mit
Cloud Code for IntelliJ, indem Sie 8079
als erforderliche Plug-in-ID angeben.
Im Beispiel wird optional auch version 22.9.3-222
als Version angegeben.
Nummer, /opt/ideaIU/plugins/
als Zielverzeichnis und
89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379
als
Prüfsumme:
...
# Install IDE and Plugins
RUN bash /installer-scripts/jetbrains-installer.sh intellij pinned && \
# Install Cloud Code - https://plugins.jetbrains.com/plugin/8079-cloud-code
bash /installer-scripts/plugin-installer.sh \
-v 22.9.3-222 \
-d /opt/ideaIU/plugins/ \
-c 89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379 \
8079
# Register IDE with JetBrains Gateway
RUN echo 'runuser user -c "/opt/ideaIU/bin/remote-dev-server.sh registerBackendLocationForGateway"' > /etc/workstation-startup.d/110_register-intellij-with-gateway.sh \
echo 'echo "IntelliJ-Ultimate ready for incoming gateway connection"' >> /etc/workstation-startup.d/110_register-intellij-with-gateway.sh
...
Zusätzliche IDE-Erweiterungen in Code OSS für Cloud Workstations installieren
Weitere IDE-Erweiterungen finden Sie in der
Öffnen Sie VSX Registry.
Sie können die URL der Datei .vsix
auch ermitteln, indem Sie die URL aus der
Link zum Herunterladen einer beliebigen Erweiterung.
![Öffnen Sie die VSX-Seite für die Go-Spracherweiterung mit der Schaltfläche „Herunterladen“.](https://cloud.google.com/static/workstations/images/open-vsx-go-ext-dark-mode.png?authuser=0000&hl=de)
Wenn Sie die öffnen
Extension Marketplace von einer
Workstation wird Installieren anstelle von Herunterladen angezeigt.
Standardcode-OSS-Einstellungen für Cloud Workstations
Ausführliche Informationen zum Speichern von Einstellungen in Code OSS for Cloud Workstations siehe Einstellungen anpassen.
Wenn Sie in der Konfiguration der Workstation ein
nichtflüchtiges Basisverzeichnis angeben,
Sie können Standardeinstellungen für Code OSS for Cloud Workstations konfigurieren, indem Sie eine
Startskript
die Einstellungen in
$HOME/.codeoss-cloudworkstations/data/Machine/settings.json
Wenn Sie beispielsweise das Standardfarbdesign auf „Dunkel“ festlegen möchten, erweitern Sie die Basis
Editorbild, unter dem das folgende Skript eingefügt wird
/etc/workstation-startup.d/150_default-ide-color-theme.sh
cat <<< $(jq '. += {"workbench.colorTheme": "Default Dark Modern"}' settings.json) > settings.json
Benutzerdefiniertes Container-Image erstellen
Detaillierte Informationen zu Docker-Befehlen finden Sie in der Docker-Referenz Geben Sie den folgenden Befehl ein, um den Container zu erstellen:
docker build CUSTOM_IMAGE_FOLDER -t TARGET_IMAGE
Beachten Sie, dass das Ersetzen des Textes vor der bearbeiten Mit dem Symbol Bearbeiten werden die anderen Beispiele auf dieser Seite aktualisiert.
Ersetzen Sie Folgendes:
CUSTOM_IMAGE_FOLDER
: der Pfad zum Ordner, den Sie zum Speichern Ihres benutzerdefinierten Images erstellt haben.TARGET_IMAGE
: der Pfad zu Ihrem Image in Artifact Registry (oder Container Registry).Beispielsweise kann
TARGET_IMAGE
auf ein Zielbild verweisen. Pfad, der einem der folgenden Pfade ähnelt:*.pkg.dev/cloud-workstations-external/customimage:latest *.gcr.io/cloud-workstations-external/customimage:latest
Ersetzen Sie * bei Bedarf durch den Namen der Region und zusätzliche Kennzeichnungen.
Sie können auch die Umgebungsvariable CLOUD_WORKSTATIONS_CUSTOM_IMAGE
aktualisieren.
auf das Repository verweisen.
Weitere Informationen zum Speichern von Docker-Images in Artifact Registry finden Sie in den folgenden Abschnitten:
- Anleitung Erstellen Sie ein Docker-Repository mit Artifact Registry.
- Namenskonventionen für Repository- und Image-Namen.
Benutzerdefiniertes Container-Image hosten
Wir empfehlen und unterstützen Artifact Registry, um benutzerdefinierte Container-Images zu hosten. Wenn Sie GitHub oder ein anderes öffentliches oder privates Repository verwenden, funktioniert möglicherweise nicht wie erwartet. Weitere Informationen finden Sie im wichtigen Hinweis in der Benutzerdefiniertes Container-Image verwenden .
Benutzerdefiniertes Container-Image testen
Nachdem der Container erstellt wurde, können Sie ihn so testen: Befehl:
docker run --privileged -p LOCAL_PORT:CONTAINER_PORT TARGET_IMAGE
Ersetzen Sie Folgendes:
LOCAL_PORT
: die lokale PortnummerCONTAINER_PORT
: die Container-Portnummer
Wenn Sie z. B.
LOCAL_PORT
:CONTAINER_PORT
mit
8080
:80
weist Port 8080
für die lokale Verwendung und Port 80
für die Verwendung in
Container.
Wenn Sie das Image des Basiseditors von Cloud Workstations erweitern, führen Sie den Befehl docker
aus.
und testen Sie dann das Workstation-Image, indem Sie eine Verbindung zur Workstation herstellen.
über Ihren lokalen Browser oder führen Sie ssh
aus, um eine Verbindung zu Ihrem Container herzustellen:
- Wenn Sie über den Browser eine Verbindung herstellen, müssen Sie
-p 8080:80
an Ihrendocker run
-Befehl und öffnen Sie dannlocalhost:8080
- Wenn du eine Verbindung über SSH herstellen möchtest, musst du
-p 2222:22
übergeben. in den Befehldocker run
ein und führen Sie dannssh user@localhost -p 2222
aus.
Benutzerdefiniertes Container-Image verwenden
So verwenden Sie Ihr benutzerdefiniertes Container-Image, nachdem Sie es lokal erstellt und getestet haben: Übertragen Sie Ihren Container per Push in Artifact Registry (oder Container Registry) mit folgenden Elementen: Befehl:
docker push TARGET_IMAGE
Sie können jetzt Workstationkonfiguration erstellen das gerade erstellte und per Push übertragene Container-Image.
Weitere Informationen finden Sie unter Erstellen Sie ein Docker-Repository mit Artifact Registry.
Probleme beheben
Informationen zum Ermitteln und Beheben von Problemen beim Ausführen des Container-Images finden Sie in der Containerausgabelogs von Ihren laufenden Workstations.
Empfohlen: Image-Pipeline sichern
Sie sind für die Verwaltung und Aktualisierung benutzerdefinierter Pakete und Abhängigkeiten, die benutzerdefinierten Images hinzugefügt wurden.
Wenn Sie benutzerdefinierte Images erstellen, empfehlen wir Folgendes:
So schützen Sie Ihr Image-Pipeline durch die automatische Neuerstellung dieser Images, wenn das Cloud Workstations-Basis-Image wird aktualisiert.
Führen Sie ein Container-Scantool wie Artefaktanalyse um alle zusätzlichen Abhängigkeiten zu überprüfen, die Sie hinzugefügt haben.
Builds planen wie Sie Bilder wöchentlich neu erstellen die Neuerstellung von Container-Images zu automatisieren.
Nächste Schritte
- Neuerstellung von Container-Images automatisieren , um Basis-Image-Updates mit Cloud Build und Cloud Scheduler zu synchronisieren.
- Best Practices für die Sicherheit einrichten
- Weitere Informationen zur Artefaktanalyse