Personalizzare le impostazioni del progetto e dell'editor

Completato

È stato configurato un contenitore di sviluppo per uno dei progetti dell'agenzia. Ora funzionerà "solo" per chiunque abbia Docker e l'estensione Dev Containers. Sarà comunque necessario installare le dipendenze. Potrebbero anche essere necessarie alcune estensioni di Visual Studio Code che non conoscono.

Fortunatamente, è possibile personalizzare e automatizzare completamente tutta la configurazione del progetto usando il file devcontainer.json.

Un'analisi più attenta di devcontainer.json

Verranno ora esaminate le opzioni principali nel .devcontainer/devcontainer.json file dal progetto Products Dashboard. È un po ' lungo esaminare tutti contemporaneamente, quindi esaminiamolo nelle sezioni.

Configurazione della build

La image proprietà definisce il modo in cui verrà creato il contenitore, in base a ciò che è noto come immagine del contenitore.

"image": "mcr.microsoft.com/devcontainers/python:0-3.11"
},

Questa immagine è ospitata nel repository devcontainers/images, dove è possibile controllarla ulteriormente. Le immagini in questo repository sono tutte immagini predefinite, che velocizzano il flusso di lavoro e generano una configurazione più semplice .devcontainer/devcontainer.json .

È anche possibile usare file noti come Dockerfile o un file Docker Compose per configurare la configurazione. Questi file possono risiedere nella .devcontainer cartella e consentono di configurare ulteriormente determinati requisiti di installazione, ad esempio l'installazione di software aggiuntivo. Per altre informazioni, vedere la documentazione del contenitore di sviluppo.

Funzionalità

Le funzionalità del contenitore di sviluppo sono unità condivisibili autonome del codice di installazione e della 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 di VS Code Dev Containers: Aggiungi file di configurazione del contenitore di sviluppo, viene presentato un elenco di script per personalizzare le configurazioni dei contenitori di sviluppo esistenti, come l'installazione di Git o della CLI di Azure.

Impostazioni del progetto

Una sezione successiva del file riguarda direttamente la configurazione del progetto.

customizations imposta proprietà specifiche del prodotto per i prodotti che supportano contenitori di sviluppo, ad esempio VS Code e GitHub Codespaces.

Ad esempio, è possibile impostare vscode.settings per copiare impostazioni specifiche del computer nel contenitore. Queste impostazioni potrebbero essere disponibili nella configurazione di Visual Studio Code. Aggiungendoli a settings, si assicuri che tutti gli utenti che aprono questo progetto ottengano queste specifiche impostazioni di VS Code.

In questo contenitore Python è possibile visualizzare queste impostazioni nell'immagine mcr.microsoft.com/devcontainers/python:0-3.11di base . Offrono all'utente un'esperienza di modifica di Python migliorata.

  • È possibile usare la extensions matrice all'interno della customizations.vscode proprietà per specificare le estensioni di Visual Studio Code da installare in Visual Studio Code quando si connette al contenitore. Non saranno presenti la configurazione normale di Visual Studio Code e tutte le estensioni che hai già quando usi Dev Containers. Le estensioni vengono specificate qui con i relativi ID.

postCreateCommand

La postCreateCommand proprietà consente di eseguire tutti i comandi desiderati dopo la creazione del contenitore. Se si ricorda dal primo esercizio, è necessario eseguire il pip3 comando per installare le dipendenze. Ma come faresti a farlo? Potresti non essere così. È possibile configurarla qui in modo che venga eseguita automaticamente e gli altri non dovranno preoccuparsi di esso.

Nell'esercizio successivo si modificherà il file devcontainer.json per automatizzare diversi aspetti del progetto che configureranno altri sviluppatori per un esito positivo immediato.