Aggiungere software a un contenitore esistente

Completato

Il contenitore personalizzato per l'agenzia è sempre più completo. Grazie alle potenzialità dei contenitori di sviluppo, è stato possibile aggiungere un contenitore di sviluppo preconfigurato e con gli esercizi eseguiti finora è stato possibile personalizzare l'esperienza tramite il file devcontainer.json. E se fosse necessario aggiungere software oltre a quello disponibile nelle immagini o nei contenitori di sviluppo preconfigurati?

Introduzione all'installazione di software aggiuntivo

Il software aggiuntivo potrebbe includere un altro stack tecnologico per l'agenzia. Ad esempio, si potrebbe voler includere Node.js in tutti i contenitori di sviluppo, perché si sa che fa parte di molti flussi di lavoro di sviluppo.

Quando è stato eseguito il comando Dev Containers: Add Development Container Configuration Files (Aggiungi file di configurazione del contenitore di sviluppo) è stata aggiunta una cartella .devcontainer all'app. Includeva un file devcontainer.json, in base a questa immagine del contenitore. Sebbene questa immagine offra molte opzioni interessanti per il team, è possibile ampliare ulteriormente le possibilità installando altro software.

Metodi per installare il software

È possibile installare il software tramite il terminale integrato. La maggior parte delle immagini del contenitore si basa su Debian o Ubuntu, in cui viene usato il comando apt o apt-get per installare i nuovi pacchetti.

Importante

Ogni volta che si esegue un'installazione da apt-get, eseguire prima apt-get update. Questo comando aggiorna l'elenco dei pacchetti e i repository dei pacchetti in modo da memorizzare nella cache l'elenco più aggiornato.

Tuttavia, se si apportano modifiche alla cartella .devcontainer ed è necessario ricompilare il contenitore, sarà necessario reinstallare tutti gli elementi installati manualmente. Per ovviare a questo problema, è possibile usare la proprietà postCreateCommand in devcontainer.json, come indicato nell’unità precedente.

La procedura più efficiente che consente di rendere permanenti le modifiche, anche dopo la ricompilazione, consiste nell'installare il software tramite una funzionalità.

Installazione di software tramite funzionalità

Come indicato nell'unità 5 di questo modulo, il contenitore di sviluppo "Funzionalità" è costituito da unità condivisibili di codice di installazione e configurazione del contenitore di sviluppo. Il nome deriva dall'idea che fare riferimento a uno di essi consente di aggiungere più strumenti, runtime o librerie "Funzionalità" nel contenitore di sviluppo per l'uso da parte dell'utente o dei collaboratori.

Quando si usa il comando VS Code Dev Containers: Add Dev Container Configuration Files (Aggiungere file di configurazione di Dev Container), viene presentato un elenco di script per personalizzare le configurazioni dei contenitori di sviluppo esistenti, ad esempio l'installazione di Git o l'interfaccia della riga di comando di Azure.

Quando si ricompila e si riapre nel contenitore, le funzionalità selezionate saranno disponibili in devcontainer.json:

"features": {
    "ghcr.io/devcontainers/features/azure-cli:1": {
        "version": "latest"
    }
}

Il comando Vs Code Dev Containers: Configure Container Features (Configurare funzionalità contenitore) consente di aggiornare una configurazione esistente.

Le funzionalità fornite nell'interfaccia utente di VS Code ora provengono da un indice centrale, che è possibile esplorare e al quale è possibile anche contribuire.

È possibile esaminare altre informazioni sul funzionamento delle funzionalità e sulla relativa distribuzione.

Nell'esercizio successivo si installerà Node.js. Si verificherà quindi che Node.js sia disponibile nel contenitore in esecuzione.