Usaremos Visual Studio Code.
Parte 7: https://naldog.blogspot.com/2019/10/docker-en-windows-parte-7-contenedor-de.html
_____________________________________
NOTA: Antes que nada, disculpar la calidad de las imágenes ya que son imágenes exportadas de un Word.
Referencias
Bajar Visual Studio Code
Es gratis y no muerde.
Instálalo.
Ejecutar Aplicación Net Core y que quede corriendo localmente
Creamos una aplicación simple. Un servicio REST en Net Core.
Abrirlo y abrir terminal (New Terminal)
Escribir
cd c:
mkdir netcore
cd netcore
dotnet new WeatherForecast
Abrir la carpeta netcore
Correr desde la Terminal
dotnet run
Quedará corriendo en port 5001
Entrar al link
Se verá el JSON
Corriéndola desde Docker (Linux)
Ejecutar Docker y debe quedar usando contenedores Linux
Debe decir Switch to
Windows containers (quiere decir está en modo Linux)
Agregar dockerfile
Averiguar nombre de DLL del proyecto en bin/debug/netcoreapp3.1
Agregar archivo dockerfile
a la raíz del proyecto. Colocar el nombre de la dll, es case sensitive.
El proyecto se llama netcore,
por lo tanto, la dll se llama netcore.dll
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "netcore.dll"]
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "netcore.dll"]
Build image
Ir con el terminal a la carpeta donde está el dockerfile y
ejecutar:
docker build -t netcore .
Ejecutar
docker images
Debe estar creada la imagen
Correr contenedor
Ejecutarla usando port 8080 externo (equipo local) y 80 (interno
del docker)
docker run -d -p 8080:80 --name cnt_app netcore
Debe quedar en estado UP
X seconds
Probar usando
Se verán los campos más ordenados:
Opcional: habilitar CORS
Habilitar CORS (acceso de otros origines o APIs) sino no se
puede consumir desde otro dominio construido con otros Front como Angular.
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
services.AddControllers();
}
public void Configure(IApplicationBuilder app,
IWebHostEnvironment env)
{
app.UseCors("MyPolicy");
__________________________________
Parte 7: https://naldog.blogspot.com/2019/10/docker-en-windows-parte-7-contenedor-de.html