Debug delle applicazioni in un contenitore Docker locale

Panoramica

Visual Studio Tools per Docker consente di sviluppare e convalidare l'applicazione in locale in un contenitore Docker. di Linux. Non è necessario riavviare il contenitore ogni volta che si esegue una modifica del codice. Questo articolo illustra come usare la funzionalità di modifica e aggiornamento per avviare un'app Web ASP.NET Core in un contenitore Docker locale, apportare le modifiche necessarie e quindi aggiornare il browser per visualizzare tali modifiche. Illustra inoltre come impostare i punti di interruzione per il debug.

Nota

Il supporto del contenitore di Windows sarà disponibile nelle versioni future

Prerequisiti

È necessario che siano installati gli strumenti seguenti.

Per eseguire i contenitori Docker in locale, è necessario un client di Docker locale. È possibile usare la casella degli strumenti di Docker, che richiede la disabilitazione di Hyper-V, o in alternativa Docker per Windows, che usa Hyper-V e richiede Windows 10.

Nella casella degli strumenti di Docker è necessario configurare il client di Docker

1. Creare un'app Web

  1. Nel menu di Visual Studio selezionare File > Nuovo > Progetto.
  2. Nella sezione Modelli della finestra di dialogo Nuovo progetto selezionare Visual C# > Web.
  3. Selezionare ASP.NET Core Web Application (.NET Core)(applicazione Web ASP.NET Core (.NET Core).
  4. Assegnare un nome alla nuova applicazione (o accettare quello predefinito), quindi selezionare OK.
  5. In ASP.NET Core 1.1 Templates (Modelli ASP.NET Core 1.1) selezionare Applicazione Web e quindi OK.

2. Aggiungere il supporto di Docker

  1. In Esplora soluzioni di Visual Studio fare clic con il pulsante destro del mouse sul progetto e scegliere Aggiungi > Supporto Docker dal menu di scelta rapida.

    Aggiungere il menu di scelta rapida Supporto Docker

  2. L'aggiunta del supporto Docker a un progetto Web ASP.NET Core comporta l'aggiunta al progetto di vari file relativi a Docker, inclusi file di Docker-Compose, script di distribuzione Windows PowerShell e file delle proprietà Docker.

    File Docker aggiunti al progetto

3. Modificare il codice e aggiornarlo

Per eseguire rapidamente l'iterazione delle modifiche, è possibile avviare l'applicazione in un contenitore e continuare ad apportare modifiche, visualizzandole come si farebbe con IIS Express.

  1. Impostare la configurazione della soluzione su Debug e premere <CTRL + F5> per creare l'immagine Docker ed eseguirla localmente.

    Una volta che l'immagine del contenitore è stata compilata ed è in esecuzione in un contenitore Docker, Visual Studio avvierà l'App Web nel browser predefinito. Se si usa il browser Microsoft Edge o se si verificano problemi, vedere la sezione relativa alla risoluzione dei problemi .

  2. Passare alla pagina About, da dove verranno apportate le modifiche.
  3. Tornare a Visual Studio e aprire Views\Home\About.cshtml.
  4. Aggiungere il contenuto HTML seguente alla fine del file e salvare le modifiche.

    <h1>Hello from a Docker Container!</h1>
    
  5. Visualizzare la finestra di output e, quando viene completata la compilazione di .NET e vengono visualizzate queste righe, tornare al browser e aggiornare la pagina About.

    Now listening on: http://*:80
    Application started. Press Ctrl+C to shut down
    
  6. Le modifiche sono state applicate.

4. Eseguire il debug con punti di interruzione

Spesso è necessario analizzare le modifiche in modo più approfondito, sfruttando le funzionalità di debug di Visual Studio.

  1. Tornare a Visual Studio e aprire Controllers\HomeController.cs
  2. Sostituire il contenuto del metodo About() con quanto riportato di seguito:

    string message = "Your application description page from within a Container";
    ViewData["Message"] = message;
    
  3. Impostare un punto di interruzione a sinistra della riga string message.
  4. Premere <F5> per avviare il debug.
  5. Accedere alla pagina About per raggiungere il punto di interruzione.
  6. Passare a Visual Studio per visualizzare il punto di interruzione ed esaminare il valore del messaggio.

Riepilogo

Con Docker Tools for Visual Studio 2015si ottiene la produttività tipica del lavoro in locale, con la realtà produttiva offerta dallo sviluppo in un contenitore Docker.

risoluzione dei problemi

Risoluzione dei problemi di sviluppo di Docker in Visual Studio

Altre informazioni su Docker con Visual Studio, Windows e Azure

Altri strumenti di Docker

Some great docker tools (Importanti strumenti di Docker, blog di Steve Lasker)

Articoli utili

Introduction to Microservices from NGINX (Introduzione ai microservizi di NGINX)

Presentazioni