Personalizza le immagini container

Le immagini di base preconfigurate fornite da Cloud Workstations contengono solo un ambiente minimo con IDE, strumenti per il terminale e il linguaggio Linux di base e un server sshd. Per accelerare la configurazione dell'ambiente di casi d'uso di sviluppo specifici, puoi creare immagini container personalizzate che estendono queste immagini di base a strumenti di preinstallazione e dipendenze ed eseguono script di automazione.

Per le immagini container personalizzate, consigliamo di configurare una pipeline per ricreare automaticamente queste immagini quando viene aggiornata l'immagine di base di Cloud Workstations, oltre a eseguire uno strumento di analisi dei container come Artifact Analysis per ispezionare eventuali altre dipendenze aggiunte. Sei responsabile della gestione e dell'aggiornamento dei pacchetti e delle dipendenze personalizzati aggiunti alle immagini personalizzate.

Prima di iniziare

  1. Devi avere una macchina dotata di strumenti per creare immagini container come Docker e per eseguire il push delle immagini in Artifact Registry (o Container Registry) utilizzando Google Cloud CLI. Puoi utilizzare Cloud Workstations o l'editor di Cloud Shell per eseguire questi passaggi, che hanno questi strumenti preinstallati.

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

  3. Crea una cartella come CUSTOM_IMAGE_FOLDER e un Dockerfile all'interno di questa cartella che estenda 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 del 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 di 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 viene collegato in modo dinamico al container, gli utenti devono essere aggiunti all'avvio della workstation, non nel Dockerfile.

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

    • 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 una sessione e l'altra.

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

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

  • Poiché gli script vengono eseguiti in ordine lessicografico, consigliamo di precedere loro 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 in modo dinamico al container durante il runtime. Questo processo sovrascrive le modifiche apportate alla directory /home al momento della creazione dell'immagine container.

Per mantenere gli aggiornamenti, modifica la directory /home durante il 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 la procedura, valuta la possibilità di eseguire lo script di configurazione come processo in background (aggiungi la e commerciale & alla fine del comando) per evitare di bloccare l'avvio del container.

Ecco alcuni esempi di configurazione in fase di build che deve essere spostata nel runtime del container:

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

Creazione e modifica di utenti

Poiché il disco permanente si collega in modo dinamico 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 creare un tuo script da eseguire all'avvio.

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

Aggiorna chiavi APT sicure preconfigurate

Le immagini di base di Cloud Workstations sono preinstallate su 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/. A questi file viene fatto riferimento nei file list corrispondenti in /etc/apt/sources.list.d/. In questo modo apt può verificare l'integrità di un determinato repository durante l'interazione con il repository.

A volte, i proprietari di repository di terze parti possono decidere di modificare la chiave pubblica utilizzata per convalidare l'integrità del proprio repository. Di conseguenza, in apt viene visualizzato un errore durante l'interazione. 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 reimporta.

Elenca le versioni IDE installate

Diverse immagini di base di Cloud Workstations sono preinstallate con un IDE. Per praticità, consulta lo script /google/scripts/preinstalled-ide-versions.sh incluso, che elenca il nome e le informazioni sulla versione degli IDE installati nell'immagine.

Disattiva privilegi root di sudo

L'utente della workstation predefinito ha sudo privilegi di accesso root in questi container. Per disattivare l'accesso 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, segui questi passaggi:

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

Utilizza la tua immagine container

Puoi anche utilizzare la tua immagine container o immagini container esterne, purché siano basate su Linux e che eseguano un processo di blocco all'avvio del container.

Durante la configurazione del Dockerfile, l'istruzione ENTRYPOINT deve eseguire un processo di blocco come sleep infinity in modo che il container continui a essere eseguito, 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 container che esegue l'immagine di base di Cloud Workstations. I nomi file indicano lo scopo di ciascuno script.

  • Ti consigliamo di eseguire un server SSH nel contenitore. Fai riferimento a /etc/workstation-startup.d/020_start-sshd.sh nell'immagine di base predefinita per scoprire come Cloud Workstations esegue la configurazione predefinita.

  • Ti consigliamo di eseguire il server web o IDE predefinito sulla porta 80.

Estendi le immagini di base di Cloud Workstations

Quando estendi un'immagine di base di Cloud Workstations per creare un'immagine personalizzata per l'ambiente di workstation, puoi adottare tre approcci:

  1. Aggiorna Dockerfile in modo da includere eventuali altri asset statici che vuoi aggiungere.
  2. Aggiungi altri file eseguibili in /etc/workstation-startup.d/ per personalizzare il container in esecuzione. I file in questa directory vengono eseguiti automaticamente in ordine lessicografico all'avvio del container, quindi puoi specificare un prefisso per il nome file per eseguirlo al momento appropriato durante l'avvio della workstation.
  3. Esegui l'override di ENTRYPOINT nel Dockerfile per personalizzare completamente l'avvio del container.

Dockerfile personalizzati di esempio

Questa sezione fornisce scenari di esempio e istruzioni per la creazione di Dockerfile.

Immagine container con emacs preinstallato

Per creare un'immagine container con emacs preinstallato, esegui questi 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 container con personalizzazione dell'utente

Per personalizzare un'immagine container:

  1. Crea in /etc/workstation-startup.d/* uno script che viene eseguito dopo il giorno 010_add-user.sh, ad esempio 011_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 nome del nuovo gruppo e $USERNAME con il nome utente dell'utente.

  2. Supponendo che tu abbia denominato lo script 011_customize-user.sh, aggiungi quanto segue all'immagine nel tuo 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 workstation o di workstation vengono passate ai processi secondari diretti utilizzando il comando del punto di ingresso. Questo include l'IDE nelle immagini di base preconfigurate. Tuttavia, le sessioni SSH non sono processi figlio del punto di ingresso e non hanno queste variabili di ambiente personalizzate impostate.

Per impostare queste variabili di ambiente nelle sessioni SSH, configura un'immagine container personalizzata che inoltri queste variabili di ambiente dal comando entrypoint del container al file /etc/environment.

A questo scopo, procedi nel seguente modo:

  1. Crea in /etc/workstation-startup.d/* uno script che viene eseguito dopo il giorno 010_add-user.sh, ad esempio 011_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 che ti interessa.

  2. Supponendo che tu abbia denominato lo script 011_add-ssh-env-variables.sh, aggiungi quanto segue all'immagine nel tuo 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 l'inoltro X11 per le sessioni SSH

L'inoltro X11 consente di avviare applicazioni remote e inoltrare il display dell'applicazione a una macchina locale.

Per creare un'immagine container che consenta 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 l'inoltro X11) e AddressFamily inet (per assicurarti che venga utilizzato solo IPv4). Per ulteriori informazioni su queste parole chiave, consulta le pagine web di OpenBSD relative a AddressFamily e X11Forwarding.

Di seguito è riportato 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

Immagine container che preinstalla le estensioni IDE in Code OSS per Cloud Workstations for Java Development

Per creare un'immagine container che preinstalla le estensioni IDE in Code OSS per lo sviluppo di Cloud Workstations for Java in fase di build, esegui questi 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

Se preinstalli le estensioni, queste vengono considerate estensioni integrate. Non puoi aggiornare queste estensioni e potrebbero non essere visualizzate nella sezione delle estensioni installate in Extensions Marketplace. Tuttavia, puoi trovare le tue estensioni integrate cercando @builtin.

Un altro modo per installare le estensioni all'avvio è eseguire uno 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

Con questo metodo, l'estensione viene visualizzata in in Extensions Marketplace e puoi aggiornarla da lì.

Installa gli IDE e i plug-in JetBrains nelle immagini di base

Quando personalizzi le immagini Docker per configurazioni di workstation, puoi installare gli IDE e i plug-in di JetBrains, come Cloud Code for IntelliJ, nell'immagine di base. Le immagini di base di Cloud Workstations per i prodotti JetBrains includono i seguenti script per aiutarti:

  • jetbrains-installer.sh: installa gli IDE JetBrains
  • plugin-installer.sh: installa plug-in, come Cloud Code for IntelliJ

Utilizza questi script in base alle esigenze per personalizzare l'immagine di base, chiamarli con uno script di avvio o eseguirli dopo l'avvio della workstation.

Script del programma di installazione

Per visualizzare i file di origine per gli script jetbrains-installer.sh e plugin-installer.sh, avvia una workstation utilizzando una configurazione di workstation che utilizzi una delle immagini predefinite di JetBrains, connettiti alla workstation tramite il gateway JetBrains o tramite SSH, quindi sfoglia i file di script nella directory installer-scripts, che si trova nella directory principale.

Ti consigliamo di eseguire questi script al momento della creazione del container. Evita di eseguirli in una workstation già avviata.

Utilizza lo script del programma 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 facoltativo di versione del plug-in da installare.
  • DESTINATION-DIRECTORY: directory facoltativa in cui deve essere installato il plug-in. Se non specificati, viene utilizzata la directory di lavoro.
  • CHECKSUM: checksum SHA-256 facoltativo del plug-in richiesto.
  • -f: se specificato, eventuali plug-in esistenti verranno sovrascritti.
  • PLUGIN_ID: l'identificatore del plug-in numerico richiesto dal marketplace JetBrains. Ad esempio, per aggiungere Dart usa 6351 come PLUGIN_ID. Per aggiungere Cloud Code for IntelliJ utilizza 8079 come PLUGIN_ID.

Ad esempio, per installare la versione più recente del plug-in Dart in IntelliJ, esegui questo comando:

plugin-installer.sh -d /opt/ideaIU/plugins/ 6351

Utilizza lo script del programma di installazione JetBrains

Ti consigliamo di utilizzare lo script del programma di installazione JetBrains quando esspandi 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 usare una delle seguenti abbreviazioni IDE:

    IDE Prodotto installato
    cl CLion
    clion CLion
    go GoLand
    goland GoLand
    iiu Intellij Ultimate
    intellij Intellij Ultimate
    pcp Professionista PyCharm
    pycharm Professionista PyCharm
    ps PHPStorm
    phpstorm PHPStorm
    rd Cavaliere
    rider Cavaliere
    rm RubyMine
    rubymine RubyMine
    ws WebStorm
    webstorm WebStorm
  • pinned|latest: (facoltativo) utilizza la versione bloccata o più recente dell'IDE. Il valore predefinito è latest.

Ad esempio, per installare la versione più recente di Clion, esegui questo comando:

jetbrains-installer.sh clion

Personalizza i file di configurazione IDE JetBrains

Se nella configurazione delle workstation è specificata una home directory permanente, le immagini di base di Cloud Workstations con gli IDE JetBrains mantengono automaticamente i file di configurazione $IDE.vmoptions e $IDE.properties. Per eseguire l'override della posizione predefinita di questi file, specifica la variabile di ambiente CLOUD_WORKSTATIONS_JETBRAINS_PERISTED_CONFIG_DIR.

Per maggiori informazioni, consulta /etc/workstation-startup.d/120_persist-jetbrains-configs.sh in qualsiasi immagine di base JetBrains per scoprire in che modo Cloud Workstations esegue la configurazione predefinita.

Estendi un'immagine Docker di base con Cloud Code for IntelliJ

Il seguente snippet Dockerfile estende un'immagine Docker di base con Cloud Code for IntelliJ includendo 8079 come identificatore plug-in richiesto. L'esempio specifica 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
...

Installa estensioni IDE aggiuntive in Code OSS per Cloud Workstations

Puoi trovare altre estensioni IDE nel registro VSX aperto. Puoi trovare l'URL del file .vsix anche copiando l'URL dal link Scarica di qualsiasi estensione.

Apri la pagina VSX per l&#39;estensione di lingua Go che mostra il pulsante Scarica.

Se apri Extensions Marketplace da una workstation, viene visualizzato Installa anziché Scarica.

Impostazioni predefinite del OSS Code per Cloud Workstations

Per informazioni dettagliate sull'archiviazione delle impostazioni in Code OSS per Cloud Workstations, consulta Personalizzazione delle impostazioni.

Se specifichi una home directory permanente nella configurazione delle workstation, puoi configurare le impostazioni predefinite per Code OSS per Cloud Workstations aggiungendo uno script di avvio che scrive le impostazioni in $HOME/.codeoss-cloudworkstations/data/Machine/settings.json.

Ad esempio, se vuoi impostare il tema a colori predefinito su Scuro, estendi l'immagine di base dell'editor in modo da includere il seguente script 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 la documentazione di riferimento di Docker. Inserisci il comando seguente per creare il container:

docker build CUSTOM_IMAGE_FOLDER -t TARGET_IMAGE

Tieni presente che la sostituzione del testo che precede l'icona Modifica Modifica comporta l'aggiornamento degli altri esempi in questa pagina.

Sostituisci quanto segue:

  • CUSTOM_IMAGE_FOLDER: il percorso della cartella creata per archiviare l'immagine personalizzata.
  • TARGET_IMAGE: il percorso dell'immagine in Artifact Registry (o Container Registry).

    Ad esempio, TARGET_IMAGE potrebbe puntare a un percorso immagine di destinazione simile a uno dei seguenti percorsi:

    *.pkg.dev/cloud-workstations-external/customimage:latest
    
    *.gcr.io/cloud-workstations-external/customimage:latest
    

    Sostituisci * in base alle esigenze con il nome della regione ed eventuali altri identificatori.

Puoi anche aggiornare la variabile di ambiente CLOUD_WORKSTATIONS_CUSTOM_IMAGE in modo che punti al repository.

Per saperne di più sull'archiviazione delle immagini Docker in Artifact Registry, consulta le sezioni seguenti:

Ospita l'immagine container personalizzata

Per ospitare immagini container personalizzate, consigliamo e supporta 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 container personalizzata.

Testa l'immagine container personalizzata

Al termine della creazione, puoi testare il container con il seguente comando:

docker run --privileged -p LOCAL_PORT:CONTAINER_PORT TARGET_IMAGE

Sostituisci quanto segue:

  • LOCAL_PORT: numero di porta locale
  • CONTAINER_PORT: il numero di porta del container

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

Se intendi estendere l'immagine dell'editor di base di Cloud Workstations, esegui il comando docker, quindi testa l'immagine della workstation connettendoti alla workstation tramite il browser locale o eseguendo ssh per connetterti al container:

  • Se ti connetti tramite browser, assicurati di passare -p 8080:80 al comando docker run e poi apri localhost:8080.
  • Se preferisci connetterti tramite SSH, assicurati di passare -p 2222:22 al comando docker run, quindi esegui ssh user@localhost -p 2222.

Utilizza un'immagine container personalizzata

Per utilizzare l'immagine container personalizzata dopo averla creata e testata localmente, esegui il push del container su Artifact Registry (o Container Registry) con il seguente comando:

docker push TARGET_IMAGE

Ora puoi creare una configurazione di workstation utilizzando l'immagine container che hai appena creato e inviato.

Per saperne di più, consulta Creare un repository Docker con Artifact Registry.

Debug dei problemi

Per individuare ed eseguire il debug dei problemi relativi all'esecuzione della tua immagine container, esamina i log di output del container dalle workstation in esecuzione.

Sei responsabile della manutenzione e dell'aggiornamento dei pacchetti personalizzati e delle dipendenze aggiunte alle immagini personalizzate.

Se vuoi creare immagini personalizzate, segui questi suggerimenti:

Passaggi successivi