Introduzione a Docker in Visual Studio per Mac
Si applica a: Visual Studio per Mac
Visual Studio
Con Visual Studio per Mac è possibile creare, eseguire ed effettuare il debug di app ASP.NET Core in contenitori e pubblicarle in Azure.
Prerequisiti
Installazione e configurazione
Per l'installazione di Docker, rivedere e seguire le informazioni riportate in Install Docker Desktop for Mac (Installare Docker Desktop per Mac).
Creazione di un'applicazione Web ASP.NET Core e aggiunta del supporto Docker
- Creare una nuova soluzione passando a Nuova > soluzione.
- In .NET Core > App scegliere il modello applicazione Web :
- Selezionare il framework di destinazione. In questo esempio si userà .NET Core 2.2:
- Immettere i dettagli del progetto, tra cui il nome (in questo esempio, DockerDemo). Il progetto creato contiene tutte le informazioni di base necessarie per compilare ed eseguire un sito Web ASP.NET Core.
- Nella finestra della soluzione fare clic con il pulsante destro del mouse sul progetto DockerDemo e scegliere Aggiungi supporto > Docker:
Visual Studio per Mac aggiungerà automaticamente alla soluzione un nuovo progetto denominato docker-compose e un Dockerfile al progetto esistente.
Panoramica dei Dockerfile
Un Dockerfile è il file recipe per la creazione di un'immagine Docker finale. Per informazioni sui comandi all'interno, vedere Informazioni di riferimento su Dockerfile .
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY DockerDemo/DockerDemo.csproj DockerDemo/
RUN dotnet restore "DockerDemo/DockerDemo.csproj"
COPY . .
WORKDIR "/src/DockerDemo"
RUN dotnet build "DockerDemo.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DockerDemo.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerDemo.dll"]
Il Dockerfile precedente è basato sull'immagine microsoft/aspnetcore e include le istruzioni per modificare l'immagine di base compilando il progetto e aggiungendolo al contenitore.
Nota
Il Dockerfile predefinito creato da Visual Studio per Mac espone la porta 80 per il traffico HTTP. Per consentire il traffico HTTPS, aggiungere Expose 443
al Dockerfile.
Debug
Selezionare il progetto come progetto di avvio e avviare il docker-compose
debug (Esegui > debug start). Il progetto ASP.NET verrà compilato, distribuito e avviato in un contenitore.
Suggerimento
Quando si esegue per la prima volta Docker Desktop dopo averlo installato, è possibile che venga visualizzato l'errore seguente durante il tentativo di eseguire il debug: Cannot start service dockerdemo: Mounts denied
Aggiunge /usr/local/share/dotnet/sdk/NuGetFallbackFolder
alla scheda Condivisione file in Docker Desktop:
Al termine del processo di compilazione, l'applicazione verrà avviata in Safari:
Il contenitore rimarrà in ascolto su una porta, ad esempio http://localhost:32768
, e questa porta può variare.
Per visualizzare l'elenco dei contenitori in esecuzione, usare il comando docker ps
nel terminale.
Osservare il valore di inoltro della porta nello screenshot seguente (sotto PORTS). Questo valore indica che il contenitore è in ascolto sulla porta specificata in precedenza e che inoltra le richieste al server Web interno sulla porta 80 (come definito nel Dockerfile). L'applicazione, quindi, è in ascolto sulla porta 80: