Immagini di base preconfigurate

Google Cloud gestisce le seguenti immagini di base per Cloud Workstations, che sono derivate dalle Google Cloud's immagini di base standard.

Elenco delle immagini di base preconfigurate

Queste immagini possono essere utilizzate direttamente nelle configurazioni delle workstation, o come immagini di base quando crei immagini container personalizzate con il comando FROM di Docker.

Image Descrizione
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest Editor di base di Cloud Workstations, Code OSS per Cloud Workstations, basato su Code-OSS. (Valore predefinito)
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest Immagine di base senza IDE installato.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest IDE CLion. Accessibile solo tramite JetBrains Gateway.
Per informazioni sull'installazione e su come iniziare, consulta Sviluppare codice utilizzando gli IDE JetBrains locali.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest IDE GoLand. Accessibile solo tramite JetBrains Gateway.
Per informazioni sull'installazione e su come iniziare, consulta Sviluppare codice utilizzando gli IDE JetBrains locali.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest IDE IntelliJ IDEA Ultimate. Accessibile solo tramite JetBrains Gateway.
Per informazioni sull'installazione e su come iniziare, consulta Sviluppare codice utilizzando gli IDE JetBrains locali.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest IDE PhpStorm. Accessibile solo tramite JetBrains Gateway.
Per informazioni sull'installazione e su come iniziare, consulta Sviluppare codice utilizzando gli IDE JetBrains locali.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest IDE PyCharm Professional. Accessibile solo tramite JetBrains Gateway.
Per informazioni sull'installazione e su come iniziare, consulta Sviluppare codice utilizzando gli IDE JetBrains locali.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rider:latest IDE Rider. Accessibile solo tramite JetBrains Gateway.
Per informazioni sull'installazione e su come iniziare, consulta Sviluppare codice utilizzando gli IDE JetBrains locali.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest IDE RubyMine. Accessibile solo tramite JetBrains Gateway.
Per informazioni sull'installazione e su come iniziare, consulta Sviluppare codice utilizzando gli IDE JetBrains locali.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest IDE WebStorm. Accessibile solo tramite JetBrains Gateway.
Per informazioni sull'installazione e su come iniziare, consulta Sviluppare codice utilizzando gli IDE JetBrains locali.

Elenco delle immagini di base di terze parti

Immagine di terze parti Provider di terze parti
us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest Posit Workbench (incluso RStudio Pro)

Se riscontri problemi con l'IDE Posit Workbench o con l'immagine container Posit Workbench, segnalali a Posit su GitHub.

Struttura dell'immagine di base di Cloud Workstations

Le immagini di base di Cloud Workstations condividono la seguente struttura definita:

  • Il file di punto di ingresso 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 lessicografico per inizializzare l'ambiente della workstation.

    I file e il loro comportamento sono i seguenti:

    • 000_configure-docker.sh: configura ed esegue Docker all'interno della workstation.
    • 010_add-user.sh: crea l'utente predefinito in Cloud Workstations.

      Poiché il disco permanente è collegato dinamicamente al container, gli utenti devono essere aggiunti all'avvio della workstation, non nel Dockerfile.

    • 020_start-sshd.sh: avvia il servizio sshd nel container.

    • 030_customize-environment.sh: Esegue /home/user/.workstation/customize_environment come user.

    • 110_start-$IDE.sh: avvia l'IDE per l'immagine.

  • Cloud Workstations archivia le immagini Docker nella home directory in /home/.docker_data in modo che le immagini vengano conservate tra le sessioni.

Per aggiungere funzionalità aggiuntive durante l'avvio della workstation, aggiungi gli script nella directory /etc/workstation-startup.d/:

  • Per impostazione predefinita, gli script in questa directory vengono eseguiti come root. Per eseguire gli script come un utente diverso, utilizza il comando runuser.

  • Poiché gli script vengono eseguiti in ordine lessicografico, ti consigliamo di anteporre agli script un numero di tre cifre maggiore di 200.

In alternativa, se non vuoi estendere un'immagine delle workstation, puoi creare uno script customize_environment nella tua home directory.

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 container in fase di runtime. Questo processo sovrascrive le modifiche apportate alla directory /home durante il tempo di compilazione dell'immagine container.

Per conservare gli aggiornamenti, modifica la directory /home in fase di runtime del container aggiungendo uno script nella directory /etc/workstation-startup.d o aggiungendo una configurazione per utente nella directory /etc/profile.d. Per velocizzare il processo, valuta la possibilità di eseguire lo script di configurazione come processo in background (aggiungi una e commerciale, &, alla fine del comando) per evitare di bloccare l'avvio del container.

Di seguito sono riportati alcuni esempi di configurazione in fase di creazione che devono essere spostati in fase di runtime del container:

  • Configurazione git per utente
  • Repository git clonati nella home directory
  • Configurazione diretta dell'utente, ad esempio inserimento di file in una directory $HOME/.config
  • Creazione utente

Creazione e modifica dell'utente

Poiché il disco permanente viene collegato dinamicamente al container in fase di runtime, gli utenti devono essere aggiunti all'avvio della workstation, non nel Dockerfile. Per modificare o creare utenti aggiuntivi, ti consigliamo di aggiornare /etc/workstation-startup.d/010_add-user.sh o di creare uno script personalizzato che venga eseguito all'avvio.

Inoltre, puoi modificare il profilo bash predefinito per gli utenti aggiornando i file in /etc/profile.d.

Aggiornare le chiavi Secure APT preconfigurate

Le immagini di base di Cloud Workstations vengono preinstallate con una serie di strumenti ottenuti da vari repository di terze parti utilizzando Secure APT. Nell'ambito del processo di installazione, le chiavi pubbliche fornite dai proprietari del repository vengono importate utilizzando gpg e inserite in singoli file in /usr/share/keyrings/. Questi file vengono referenziati 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 potrebbero decidere di modificare la chiave pubblica utilizzata per convalidare l'integrità del repository, il che fa sì che apt visualizzi un errore quando interagisce con esso. Per risolvere questo potenziale problema, puoi utilizzare /google/scripts/refresh-preinstalled-apt-keys.sh, che recupera le versioni più recenti delle chiavi pubbliche preinstallate e le reimporta.

Elencare le versioni IDE installate

Diverse immagini di base di Cloud Workstations vengono 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 root sudo

L'utente predefinito della workstation dispone dei privilegi di accesso root sudo in questi container. Per disattivare l'accesso root al container Docker, imposta la variabile di ambiente CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO su true quando crei la configurazione della workstation.

Per impostare questa variabile di ambiente tramite la Google Cloud console durante la creazione della configurazione della workstation:

  1. Quando crei la configurazione della workstation, completa la configurazione per le informazioni di base e la configurazione della macchina.
  2. Nella finestra di dialogo Personalizzazione dell'ambiente, espandi la sezione Opzioni container avanzate e seleziona Variabili di ambiente.
  3. Fai clic su addAggiungi variabile.
  4. Inserisci CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO e true come valore.

Personalizzare senza estendere un'immagine

Per comodità, tutte le immagini di base di Cloud Workstations verificano la presenza di un file eseguibile in /home/user/.workstation/customize_environment e, se esiste, lo eseguono in background come user. In questo modo puoi eseguire qualsiasi script o file binario all'avvio. A differenza di .profile o .bashrc, lo script viene eseguito una sola volta all'avvio della workstation, anziché una volta per ogni accesso alla shell.

Poiché lo script customize_environment viene eseguito come user, assicurati di aggiornare le autorizzazioni in base alle esigenze quando scrivi lo script. Ad esempio, se vuoi installare Emacs ogni volta che avvii la workstation, il contenuto di customize_environment potrebbe essere simile al seguente:

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

I log di esecuzione di customize_environment sono disponibili nel container in /var/log/customize_environment e vengono scritti anche nei log di output del container. Se l'esecuzione di customize_environment ha esito positivo, viene creato un file in /var/run/customize_environment_done. Poiché customize_environment viene eseguito in parallelo con l'avvio della workstation, i pacchetti installati dallo script possono essere disponibili già pochi istanti dopo l'avvio della workstation.

Impedire i timeout di inattività

Per comodità, tutte le immagini di base di Cloud Workstations includono uno script preinstallato in /google/scripts/keep_alive.sh. Questo script invia regolarmente messaggi keep-alive, che possono impedire l'arresto della workstation a causa di timeout di inattività quando esegui processi in background senza interazione diretta.

Passaggi successivi