Le
immagini di base preconfigurate
fornite da Cloud Workstations contengono solo un ambiente minimo con IDE,
strumenti di lingua e terminale Linux di base e un server sshd
. Per velocizzare la configurazione dell'ambiente di casi d'uso di sviluppo specifici, puoi creare immagini container personalizzate che estendono queste immagini di base per preinstallare strumenti e dipendenze ed eseguire script di automazione.
Per le immagini container personalizzate, ti consigliamo di configurare una pipeline per ricostruirle automaticamente quando viene aggiornata l'immagine di base di Cloud Workstations, oltre a eseguire uno strumento di scansione dei container come Artifact Analysis per ispezionare eventuali dipendenze aggiuntive che hai aggiunto. È tua responsabilità mantenere e aggiornare i pacchetti e le dipendenze personalizzate aggiunte alle immagini personalizzate.
Prima di iniziare
È necessaria una macchina con strumenti per la creazione di immagini container, come Docker, e per eseguire il push delle immagini in Artifact Registry (o Container Registry) utilizzando Google Cloud CLI. Per eseguire questi passaggi, puoi utilizzare Cloud Workstations o Cloud Shell Editor, che hanno questo strumento preinstallato.
Seleziona l'immagine di base che vuoi utilizzare dal nostro elenco di immagini di base supportate, ad esempio
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
.In alternativa, puoi utilizzare la tua immagine container o immagini container esterne seguendo le istruzioni per utilizzare la tua immagine container.
Crea una cartella, ad esempio
CUSTOM_IMAGE_FOLDER
, e un Dockerfile al suo interno che espanda l'immagine di base selezionata, come mostrato negli esempi che seguono.
Struttura dell'immagine di base di Cloud Workstations
Le immagini di base di Cloud Workstations condividono la seguente struttura definita:
- Il file dell'entrypoint dell'immagine di base è impostato su
/google/scripts/entrypoint.sh
. All'avvio, le immagini di base eseguono i file in
/etc/workstation-startup.d/*
in ordine alfabetico per inizializzare l'ambiente della stazione di lavoro.I file e il relativo comportamento sono i seguenti:
000_configure-docker.sh
: configura ed esegue Docker all'interno dellaworkstation.010_add-user.sh
: crea l'utente predefinito in Cloud Workstations.Poiché il disco permanente è collegato dinamicamente al contenitore, gli utenti devono essere aggiunti all'avvio della workstation, non nel file Dockerfile.
020_start-sshd.sh
: avvia il serviziosshd
nel contenitore.110_start-$IDE.sh
: avvia l'IDE per l'immagine.
Cloud Workstations archivia le immagini Docker nella home directory al percorso
/home/.docker_data
in modo che vengano conservate tra le sessioni.
Per aggiungere funzionalità aggiuntive durante l'avvio della workstation, aggiungi gli script nella directory /etc/workstation-startup.d/
:
Gli script in questa directory vengono eseguiti come root per impostazione predefinita. Per eseguire gli script come un altro utente, utilizza il comando
runuser
.Poiché gli script vengono eseguiti in ordine alfabetico, ti consigliamo di anteporre agli script un numero di tre cifre maggiore di 200.
Modifiche alla home directory
Quando la configurazione della workstation specifica una home directory permanente (che è il comportamento predefinito), un disco permanente che supporta la home directory viene collegato dinamicamente al contenitore in fase di esecuzione. Questo processo sovrascrive
le modifiche apportate alla directory /home
al momento della creazione dell'immagine container.
Per conservare gli aggiornamenti, modifica la directory /home
in fase di esecuzione del contenitore
aggiungendo uno script nella directory /etc/workstation-startup.d
o
aggiungendo una configurazione per utente nella directory /etc/profile.d
.
Per velocizzare la procedura, ti consigliamo di eseguire lo script di configurazione come processo in background (aggiungi un &, &
, alla fine del comando) per evitare di bloccare l'avvio del contenitore.
Alcuni esempi di configurazione in fase di compilazione che devono essere spostati nel runtime del contenitore:
- Configurazione di
git
per utente git
repository clonati nella home directory- Configurazione diretta dell'utente, ad esempio il posizionamento dei file in una directory
$HOME/.config
- Creazione utente
Creazione e modifica degli utenti
Poiché il disco permanente si collega dinamicamente al contenitore in fase di esecuzione, gli utenti devono essere aggiunti all'avvio della stazione di lavoro, non nel file Dockerfile. Per modificare
o creare utenti aggiuntivi, ti consigliamo di aggiornare
/etc/workstation-startup.d/010_add-user.sh
o
di creare il tuo script che viene eseguito all'avvio.
Inoltre, puoi modificare il profilo bash predefinito per gli utenti aggiornando
i file in /etc/profile.d
.
Aggiorna le chiavi APT sicure preconfigurate
Le immagini di base di Cloud Workstations sono preinstallate con una serie di strumenti ottenuti da vari repository di terze parti utilizzando Secure APT. Nell'ambito della procedura di installazione, le chiavi pubbliche fornite dai proprietari del repository vengono importate utilizzando gpg
e inserite in singoli file in /usr/share/keyrings/
. A questi file viene fatto riferimento dai file list
corrispondenti in /etc/apt/sources.list.d/
.
In questo modo, apt
può verificare l'integrità di un determinato repository quando interagisce con esso.
A volte, i proprietari di repository di terze parti possono decidere di modificare la chiave pubblica utilizzata per convalidare l'integrità del proprio repository, il che causa un errore in apt
quando interagisce con il repository. Per risolvere questo potenziale problema,
puoi utilizzare /google/scripts/refresh-preinstalled-apt-keys.sh
, che
ottiene le versioni più recenti delle chiavi pubbliche preinstallate e le importa di nuovo.
Elenco delle versioni dell'IDE installate
Diverse immagini di base di Cloud Workstations sono preinstallate con un IDE. Per comodità, consulta lo script /google/scripts/preinstalled-ide-versions.sh
incluso, che elenca il nome e le informazioni sulla versione degli IDE installati nell'immagine.
Disattivare i privilegi di sudo
root
L'utente della stazione di lavoro predefinita dispone dei privilegi di accesso root sudo
in questi
contenuti. Per disattivare l'accesso come utente root al container Docker, imposta la variabile di ambiente CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
su true
durante la creazione della configurazione della workstation.
Per impostare questa variabile di ambiente tramite la console Google Cloud durante la creazione della configurazione della workstation:
- Quando crei la configurazione della workstation, completa la configurazione per le informazioni di base e la configurazione della macchina.
- Nella finestra di dialogo Personalizzazione dell'ambiente, espandi la sezione Opzioni container avanzate e seleziona Variabili di ambiente.
- Fai clic su AggiungiAggiungi variabile.
- Inserisci
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
etrue
come valore.
Utilizzare la tua immagine container
Puoi anche utilizzare la tua immagine del contenitore o immagini di contenitori esterni, purché siano basate su Linux ed eseguino un processo di blocco all'avvio del contenitore.
Quando configuri il file Dockerfile, l'istruzione ENTRYPOINT
deve eseguire un processo di blocco come sleep infinity
in modo che il contenitore continui a funzionare anziché uscire immediatamente. In alternativa, nella configurazione della workstation puoi impostare il campo config.container.args
per specificare un processo di blocco.
Quando utilizzi la tua immagine container, tieni presente quanto segue:
Cloud Workstations non richiede script aggiuntivi dall'immagine di base di Cloud Workstations.
Tuttavia, puoi esaminare gli script nella directory
/etc/workstation-startup.d/
all'interno di un contenitore che esegue l'immagine di base di Cloud Workstations. I nomi dei file indicano la funzione di ogni script.Ti consigliamo di eseguire un server SSH nel contenitore. Consulta
/etc/workstation-startup.d/020_start-sshd.sh
nell'immagine di base predefinita per scoprire in che modo Cloud Workstations esegue questa configurazione per impostazione predefinita.Ti consigliamo di eseguire l'IDE o il server web predefinito sulla porta
80
.
Estendere le immagini di base di Cloud Workstations
Quando estendi un'immagine di base di Cloud Workstations per creare un'immagine personalizzata per il tuo ambiente di workstation, puoi adottare tre approcci:
- Aggiorna
Dockerfile
per includere eventuali altri asset statici che vuoi aggiungere. - Aggiungi altri file eseguibili in
/etc/workstation-startup.d/
per personalizzare il contenitore in esecuzione. I file in questa directory vengono eseguiti automaticamente in ordine alfabetico all'avvio del contenitore, quindi puoi anteporre un prefisso al nome del file per eseguirlo al momento opportuno durante l'avvio della workstation. - Sostituisci
ENTRYPOINT
nel Dockerfile per personalizzare completamente l'avvio del contenitore.
Dockerfile personalizzati di esempio
Questa sezione fornisce scenari di esempio e istruzioni per creare i tuoi Dockerfile.
Immagine del contenitore con emacs
preinstallato
Per creare un'immagine container con emacs
preinstallato, esegui i seguenti comandi:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN sudo apt update
RUN sudo apt install -y emacs
Immagine del container con personalizzazione utente
Per personalizzare un'immagine contenitore:
Crea uno script in
/etc/workstation-startup.d/*
che venga eseguito dopo010_add-user.sh
, ad esempio011_customize-user.sh
:#!/bin/bash # Create new group groupadd $GROUP # Add the user to a new group usermod -a -G $GROUP $USERNAME
Sostituisci
$GROUP
con il nuovo nome del gruppo e$USERNAME
con il nome utente dell'utente.Supponendo che tu abbia chiamato lo script
011_customize-user.sh
, aggiungi quanto segue all'immagine nel Dockerfile e rendilo eseguibile: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
Immagine container che imposta le variabili di ambiente del container nelle sessioni SSH
Le variabili di ambiente impostate a livello di configurazione della workstation o della workstation vengono passate ai sottoprocessi diretti utilizzando il comando entrypoint. Sono inclusi IDE nelle immagini di base preconfigurate. Tuttavia, le sessioni SSH non sono processi secondari dell'entry point e non hanno queste variabili di ambiente personalizzate impostate.
Per impostare queste variabili di ambiente nelle sessioni SSH, configura un'immagine container personalizzata che trasmetta queste variabili di ambiente dal comando entrypoint del container al file /etc/environment
.
Per farlo, segui questi passaggi:
Crea uno script in
/etc/workstation-startup.d/*
che venga eseguito dopo010_add-user.sh
, ad esempio011_add-ssh-env-variables.sh
:#!/bin/bash # echo "CUSTOM_ENV_VAR=$CUSTOM_ENV_VAR" >> /etc/environment
Sostituisci
CUSTOM_ENV_VAR
con il nome della variabile di ambiente prevista.Supponendo che tu abbia chiamato lo script
011_add-ssh-env-variables.sh
, aggiungi quanto segue all'immagine nel Dockerfile e rendilo eseguibile: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
Immagine container che abilita il forwarding X11 per le sessioni SSH
L'inoltro X11 ti consente di avviare applicazioni remote e di inoltrare la visualizzazione dell'applicazione a una macchina locale.
Per creare un'immagine container che abiliti il forwarding X11, modifica il file di configurazione del daemon OpenSSH (/etc/ssh/sshd_config
) fornito dalle immagini di base di Cloud Workstations aggiungendo X11Forwarding yes
(per consentire il forwarding X11) e AddressFamily inet
(per assicurarti che venga utilizzato solo IPv4). Per ulteriori informazioni su queste parole chiave, consulta le pagine web di OpenBSD su AddressFamily
e X11Forwarding
.
Ecco un Dockerfile di esempio che apporta le modifiche necessarie:
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
Copiare Code OSS per Cloud Workstations in un'altra immagine contenitore
Una compilazione in più fasi ti consente di utilizzare più istruzioni FROM
nel tuo Dockerfile. Ogni istruzione FROM
può utilizzare una base diversa e consente di copiare gli elementi tra le fasi di compilazione. Per aggiungere Code OSS per Cloud Workstations a un'altra immagine container, utilizza una compilazione in più fasi per copiare la cartella dell'applicazione/opt/code-oss
nell'immagine. Se vuoi avviare Code OSS per Cloud Workstations
al momento dell'avvio del contenitore, copia anche lo script /etc/workstation-startup.d/110_start-code-oss.sh
nel contenitore.
Ecco un Dockerfile di esempio che copia Code OSS nell'immagine JetBrains IntelliJ Ultimate. A questo punto puoi interagire con una delle due IDE:
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"]
Immagine del contenitore che preinstalla le estensioni IDE in Code OSS per Cloud Workstations per lo sviluppo Java
Per creare un'immagine container che preinstalla le estensioni IDE in Code OSS per Cloud Workstations per lo sviluppo Java in fase di compilazione, esegui i seguenti comandi:
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
Le estensioni preinstallate sono considerate integrate.
Non potrai aggiornare queste estensioni e potrebbero non essere visualizzate nella sezione Installate del
Extensions Marketplace.
Tuttavia, puoi trovare le estensioni integrate cercando@builtin
.
Un altro modo per installare le estensioni all'avvio è eseguire un
script di avvio.
Ad esempio, includi il seguente script di avvio in
/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
Se utilizzi questo metodo, l'estensione viene visualizzata nel Marketplace delle estensioni e puoi aggiornarla da lì.
Installare IDE e plug-in JetBrains nelle immagini di base
Quando personalizzi le immagini Docker per le configurazioni delle stazioni di lavoro, puoi installare IDE e plug-in JetBrains, come Cloud Code per IntelliJ, nell'immagine di base. Le immagini di base di Cloud Workstations per i prodotti JetBrains includono i seguenti script per aiutarti a:
jetbrains-installer.sh
: installa gli IDE JetBrainsplugin-installer.sh
: installa plug-in, ad esempio Cloud Code per IntelliJ
Utilizza questi script in base alle esigenze per personalizzare l'immagine di base, per richiamarli con uno script di avvio o per eseguirli dopo l'avvio della workstation.
Script di installazione
Per visualizzare i file di origine degli script jetbrains-installer.sh
e
plugin-installer.sh
, avvia una workstation utilizzando una configurazione della workstation
che utilizza una delle immagini predefinite di JetBrains, connettiti alla
workstation tramite JetBrains Gateway o tramite SSH e poi sfoglia
i file di script nella directory installer-scripts
, che si trova nella directory
principale.
Ti consigliamo di eseguire questi script al momento della compilazione del contenitore. Evita di eseguirli in una workstation già avviata.
Utilizzare lo script di installazione del plug-in
Lo script plugin-installer.sh
utilizza la seguente sintassi:
plugin-installer.sh [-v VERSION] [-d DESTINATION-DIRECTORY] [-c CHECKSUM] [-f] PLUGIN_ID
Sostituisci quanto segue:
VERSION
: numero di versione facoltativo del plug-in da installare.DESTINATION-DIRECTORY
: directory facoltativa in cui deve essere installato il plug-in. Se non specificato, viene utilizzata la directory di lavoro.CHECKSUM
: checksum SHA-256 facoltativo del plug-in richiesto.-f
: se specificato, qualsiasi plug-in esistente verrà sovrascritto.PLUGIN_ID
: l'identificatore numerico del plug-in richiesto dal marketplace JetBrains. Ad esempio, per aggiungere Dart utilizza6351
come PLUGIN_ID. Per aggiungere Cloud Code per IntelliJ utilizza8079
come PLUGIN_ID.
Ad esempio, per installare la versione più recente del plug-in Dart in IntelliJ, esegui il seguente comando:
plugin-installer.sh -d /opt/ideaIU/plugins/ 6351
Utilizzare lo script di installazione di JetBrains
Ti consigliamo di utilizzare lo script di installazione di JetBrains quando estendi un'immagine di base preconfigurata per gli IDE JetBrains.
Lo script jetbrains-installer.sh
utilizza la seguente sintassi:
jetbrains-installer.sh IDE [ pinned|latest ]
Sostituisci quanto segue:
IDE
: l'IDE JetBrains da installare. Devi utilizzare una delle seguenti abbreviazioni IDE:IDE Prodotto installato 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
Cavaliere rider
Cavaliere rm
RubyMine rubymine
RubyMine ws
WebStorm webstorm
WebStorm pinned|latest
: facoltativo. Utilizza la versione bloccata o l'ultima versione dell'IDE. Il valore predefinito èlatest
.
Ad esempio, per installare la versione più recente di CLion, esegui il seguente comando:
jetbrains-installer.sh clion
Personalizzare i file di configurazione dell'IDE JetBrains
Se nella configurazione delle stazioni di lavoro è specificata una home directory permanente, le immagini di base di Cloud Workstations con IDE JetBrains mantengono automaticamente i file di configurazione $IDE.vmoptions
e $IDE.properties
. Per sostituire la posizione predefinita di questi file, specifica la variabile di ambiente CLOUD_WORKSTATIONS_JETBRAINS_PERISTED_CONFIG_DIR
.
Per ulteriori informazioni, consulta /etc/workstation-startup.d/120_persist-jetbrains-configs.sh
in qualsiasi immagine di base JetBrains per scoprire come Cloud Workstations esegue questa configurazione per impostazione predefinita.
Estendere un'immagine Docker di base con Cloud Code for IntelliJ
Il seguente snippet Dockerfile estende un'immagine Docker di base con Cloud Code per IntelliJ includendo 8079
come identificatore del plug-in richiesto.
L'esempio specifica facoltativamente anche version 22.9.3-222
come numero di versione, /opt/ideaIU/plugins/
come directory di destinazione e 89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379
come checksum:
...
# 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
...
Installare estensioni IDE aggiuntive in Code OSS per Cloud Workstations
Puoi trovare altre estensioni IDE nel
registro VSX aperto.
Puoi anche trovare l'URL del file .vsix
copiando l'URL dal link Scarica per qualsiasi estensione.
Se apri Marketplace di estensioni da una workstation, viene visualizzato Installa anziché Scarica.
Impostazioni predefinite di Code OSS per Cloud Workstations
Per informazioni dettagliate sullo spazio di archiviazione delle impostazioni in Code OSS per Cloud Workstations, consulta Personalizzare le impostazioni.
Se specifichi una home directory persistente nella configurazione delle stazioni di lavoro,
puoi configurare le impostazioni predefinite per Code OSS per Cloud Workstations aggiungendo un
script di avvio
che scrive le impostazioni in
$HOME/.codeoss-cloudworkstations/data/Machine/settings.json
.
Ad esempio, se vuoi impostare il tema di colore predefinito su Scuro, espandi l'immagine editor di base in modo da includere lo script riportato di seguito in /etc/workstation-startup.d/150_default-ide-color-theme.sh
cat <<< $(jq '. += {"workbench.colorTheme": "Default Dark Modern"}' settings.json) > settings.json
Crea un'immagine container personalizzata
Per informazioni dettagliate sui comandi Docker, consulta il riferimento di Docker. Inserisci il seguente comando per compilare il contenitore:
docker build CUSTOM_IMAGE_FOLDER -t TARGET_IMAGE
Tieni presente che la sostituzione del testo che precede l'icona modifica Modifica aggiorna gli altri esempi in questa pagina.
Sostituisci quanto segue:
CUSTOM_IMAGE_FOLDER
: il percorso della cartella che hai creato per archiviare l'immagine personalizzata.TARGET_IMAGE
: il percorso dell'immagine in Artifact Registry (o Container Registry).Ad esempio,
TARGET_IMAGE
potrebbe fare riferimento a un percorso dell'immagine di destinazione simile a uno dei seguenti:*.pkg.dev/cloud-workstations-external/customimage:latest *.gcr.io/cloud-workstations-external/customimage:latest
Sostituisci *, se necessario, con il nome della regione e eventuali identificatori aggiuntivi.
Puoi anche aggiornare la variabile d'ambiente CLOUD_WORKSTATIONS_CUSTOM_IMAGE
in modo che indichi il repository.
Per ulteriori informazioni sull'archiviazione delle immagini Docker in Artifact Registry, consulta le seguenti sezioni:
- Come creare un repository Docker con Artifact Registry.
- Convenzioni di denominazione per nomi di repository e immagini.
Ospitazione dell'immagine del container personalizzato
Per ospitare immagini container personalizzate, consigliamo e supportiamo Artifact Registry. Se utilizzi GitHub o qualsiasi altro repository pubblico o privato, Cloud Workstations potrebbe non funzionare come previsto. Per ulteriori informazioni, consulta la nota importante nella sezione Utilizzare un'immagine contenitore personalizzata.
Testare l'immagine del container personalizzato
Una volta completata la compilazione del contenitore, puoi testarlo con il seguente comando:
docker run --privileged -p LOCAL_PORT:CONTAINER_PORT TARGET_IMAGE
Sostituisci quanto segue:
LOCAL_PORT
: il numero di porta localeCONTAINER_PORT
: il numero di porta del contenitore
Ad esempio, la sostituzione di LOCAL_PORT
:CONTAINER_PORT
con 8080
:80
assegna la porta 8080
per l'utilizzo locale e la porta 80
per l'utilizzo nel contenitore.
Se stai estendendo l'immagine dell'editor di base di Cloud Workstations, esegui il comando docker
e poi testa l'immagine della workstation connettendoti alla workstation
tramite il browser locale o eseguendo ssh
per connetterti al container:
- Se ti connetti tramite il browser, assicurati di passare
-p 8080:80
al comandodocker run
e poi aprilocalhost:8080
. - Se preferisci connetterti tramite SSH, assicurati di passare
-p 2222:22
al comandodocker run
ed eseguissh user@localhost -p 2222
.
Utilizza un'immagine container personalizzata
Per utilizzare l'immagine container personalizzata dopo averla creata e testata localmente, pusha il container in Artifact Registry (o Container Registry) con il seguente comando:
docker push TARGET_IMAGE
Ora puoi creare una configurazione della workstation utilizzando l'immagine del contenitore che hai appena creato e inviato.
Per ulteriori informazioni, consulta Creare un repository Docker con Artifact Registry.
Problemi di debug
Per trovare e risolvere i problemi di esecuzione dell'immagine container, esamina i log di output del container dalle workstation in esecuzione.
Consigliato: contribuisci a proteggere la pipeline di immagini
È tua responsabilità gestire e aggiornare i pacchetti e le dipendenze personalizzate aggiunte alle immagini personalizzate.
Se crei immagini personalizzate, ti consigliamo quanto segue:
Contribuisci a proteggere la tua pipeline di immagini ricreando automaticamente queste immagini quando l'immagine di base di Cloud Workstations viene aggiornata.
Esegui uno strumento di analisi dei contenitori come Artifact Analysis per controllare eventuali dipendenze aggiuntive che hai aggiunto.
Pianifica le build per ricostruire le immagini settimanalmente o scopri come automatizzare la ricostruzione delle immagini container.
Passaggi successivi
- Automatizza le ricostruzioni delle immagini container per sincronizzare gli aggiornamenti delle immagini di base utilizzando Cloud Build e Cloud Scheduler.
- Configurare le best practice per la sicurezza.
- Scopri di più su Artifact Analysis.