Mostrando entradas con la etiqueta .Net Core. Mostrar todas las entradas
Mostrando entradas con la etiqueta .Net Core. Mostrar todas las entradas

martes, 18 de febrero de 2020

Docker en Windows parte 8: .Net Core 3.1 con Docker Linux

Hola a todos, ahora veremos como subir una aplicación simple .Net Core a Docker para Linux.
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
https://localhost:5001/WeatherForecast/

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"]

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

Si lo parseamos 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