Sviluppare con Docker in Business Central

Realizzare un ambiente di sviluppo versatile per consentire lo sviluppo app in tutta flessibilità

Prima di iniziare facciamo un po’ di chiarezza.

Partiamo dalle basi, ossia da che cos’è Docker. Si tratta di uno strumento open-source per il deployment e la gestione dei container. Come detto sopra, è uno dei più diffusi e conosciuti, sebbene non sia l’unico. E’ un sistema studiato per creare ed eseguire applicazioni e servizi come container isolati.

Docker si esegue direttamente sul sistema operativo e i container condividono il kernel e l’hardware della macchina fisica grossomodo con lo stesso overhead dei processi eseguiti direttamente sulla macchina. Inoltre Docker permette di automatizzare il deployment delle applicazioni all’interno dell’ambiente containerizzato.

Con l’avvento di Microsoft Business Central è diventato necessario per gli sviluppatori prendere “confidenza” sempre più con la creazione di sandbox e container per poter sviluppare app con semplicità, anche direttamente in locale sulla propria macchina.

Ci viene in aiuto Docker, un software multipiattaforma di gestione dei container.

Perché abbiamo scelto Docker?

  • Docker permette di avere diverse versioni di BC installate in parallelo sulla propria macchina;
  • E’ possibile attivare i container anche su Azure, non consumando spazio sulla propria macchina;
  • Possiamo eseguire contemporaneamente versioni diverse della stessa applicazione eseguendo i container come se fossero isolati tra di loro ma condividendo le risorse della macchina come la CPU, la memoria e il sistema operativo;
  • I container sono usa e getta, ovvero possono essere ricreati con estrema facilità;

Container Docker

Per semplificare, ci concentreremo sulla creazione di un container in locale sul nostro laptop.

Requisiti minimi

Windows 10

  • Professional / Enterprise edition
  • Funzionalità attive Hyper-V e Contenitori

Funzionalità Windows

Come posso creare il primo container

Per procedere alla creazione di un container è necessario avere un minimo di conoscenze di base di Powershell.

Di seguito un esempio di script per la creazione di un container:

install-module navcontainerhelper -force

# set accept_eula to $true to accept the eula found here: https://go.microsoft.com/fwlink/?linkid=861843
$accept_eula = $false

$imagename = 'mcr.microsoft.com/businesscentral/sandbox:14.1.32615.0-it'
$containername = 'BusCentralIT'
$credential = New-Object System.Management.Automation.PSCredential `
    -argumentList "admin", (ConvertTo-SecureString -String "Admin123!" -AsPlainText -Force)

New-NavContainer -accept_eula `
                 -containername $containername `
                 -auth NavUserPassword `
                 -credential $credential `
                 -includeAL `
                 -alwaysPull `
                 -doNotExportObjectsToText `
                 -usessl:$false `
                 -updateHosts `
                 -assignPremiumPlan `
                 -shortcuts Desktop ` 

Notiamo subito la prima riga dove installiamo il modulo “navContainerhelper” per avere qualche facilitazione nella gestione dei comandi.

Gli elementi fondamentali sono

  • ContainerName: nell’esempio sopra “BusCentralIT”;
  • NavCredential: Sono le credenziali per accedere al Container, nell’esempio user: Admin e Password Admin123!;
  • Ultimo, ma non per importanza ImageName: Corrisponde all’immagine di BC\NAV che vogliamo installare nel container, di seguito la lista ufficiale di quelle disponibili

Esecuzione dello script

Dopo aver lanciato lo script se tutto è andato a buon fine si otterrà un risultato analogo a quello sotto.

Esecuzione Script

Configurazione ambiente di sviluppo

A questo punto si può procedere con la parametrizzazione in Visual Studio Code del file Launch.json, per agganciare il nuovo Container al nostro ambiente di sviluppo sarà sufficiente specificare il server e la server Instance che abbiamo ottenuto come output al termine dell’esecuzione dello script (vedi Screen):

ambiente_sviluppo

Ora, con l’ambiente disponibile, siamo pronti per iniziare a sviluppare!

Dynamics 365 Developer

 

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *