He estado trabajando cada vez más en contenedores Docker (en lugar de en el metal) y noté recientemente que Visual Studio 2019 agregó soporte actualizado para contenedores dentro de VS, así que lo intenté.
Cuando cree una nueva aplicación web ASP.NET Core, asegúrese de marcar "habilitar la compatibilidad con la ventana acoplable" cuando haga clic en crear.
Primero necesitará Docker para Windows, por supuesto. Estoy usando el nuevo Docker Desktop para Windows que usa WSL2 para su backend en lugar de una VM de utilidad que está visible en Hyper-V.
Ahora, dentro de Visual Studio 2019, vaya al menú Ver y haga clic en "Otras ventanas | Contenedores". Me gusta acoplar esta nueva ventana de herramientas en la parte inferior.
Tenga en cuenta en mi captura de pantalla anterior que estoy iniciando SQL Server en Linux dentro de un contenedor. Esta ventana es fantástica e incluye básicamente todo lo que le gustaría saber y ver al desarrollar dentro de un contenedor.
Puede ver los puertos expuestos, el sistema de archivos local del contenedor, el entorno y los registros a medida que ocurren.
Incluso puede hacer clic con el botón derecho en un contenedor y obtener una ventana de terminal en ese contenedor en ejecución si lo desea:
También puede ver https://aka.ms/containerfastmode para comprender cómo Visual Studio usa su Dockerfile de varias etapas (como el que se muestra a continuación) para crear sus imágenes para una depuración más rápida.
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"]
Vaya a leer sobre las nuevas herramientas de contenedor en Visual Studio. Es probable que tenga un dockerfile en su proyecto, ¡pero no ha sacado a la luz esta ventana de herramientas de contenedores!
Patrocinador: Las organizaciones que escanean su código más de 300 veces al año tienen 5 veces menos deuda de seguridad que aquellas con procesos de prueba esporádicos. El informe SOSS X 2019 de Veracode profundiza en estos datos y más.