Ho lavorato sempre di più nei contenitori Docker (piuttosto che sul metallo) e ho notato di recente che Visual Studio 2019 ha aggiunto il supporto aggiornato per i contenitori all'interno di VS stesso, quindi ho provato.
Quando crei una nuova app Web ASP.NET Core, assicurati di selezionare "abilita supporto Docker" quando fai clic su Crea.
Avrai bisogno prima di Docker per Windows, ovviamente. Sto utilizzando il nuovo Docker Desktop per Windows che utilizza WSL2 per il suo back-end anziché una macchina virtuale di utilità visibile in Hyper-V.
Ora, in Visual Studio 2019, vai al menu Visualizza e fai clic su "Altre finestre | Contenitori". Mi piace agganciare questa nuova finestra degli strumenti in basso.
Nota nel mio screenshot sopra che sto avviando SQL Server su Linux all'interno di un contenitore. Questa finestra è fantastica e include praticamente tutto ciò che vorresti sapere e vedere durante lo sviluppo all'interno di un contenitore.
Puoi vedere le porte esposte, il file system locale del container, l'ambiente e i log mentre si verificano.
Puoi anche fare clic con il pulsante destro del mouse su un contenitore e inserire una finestra terminale in quel contenitore in esecuzione, se lo desideri:
Puoi anche vedere https://aka.ms/containerfastmode per capire come Visual Studio usa il tuo Dockerfile multistadio (come quello di seguito) per creare le tue immagini per un debug più veloce.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
RUN dotnet restore "WebApplication1/WebApplication1.csproj"
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
Vai a leggere i nuovi Strumenti contenitore in Visual Studio. È probabile che tu abbia un dockerfile nel tuo progetto ma non hai attivato questa finestra degli strumenti dei contenitori per giocare!
Sponsor: Le organizzazioni che scansionano il proprio codice più di 300 volte l'anno hanno un debito di sicurezza 5 volte inferiore rispetto a quelle con processi di test sporadici. Il rapporto SOSS X 2019 di Veracode approfondisce questi dati e altro ancora.