Try Docker 1811

This commit is contained in:
2025-10-29 18:11:25 -03:00
parent e354433cd6
commit 06d95d32ca
12 changed files with 175 additions and 6 deletions

View File

@@ -0,0 +1,30 @@
# Etapa 1: Compilación
# Usamos la imagen del SDK de .NET 8 para compilar la aplicación
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src
# Copiamos el archivo de proyecto y restauramos las dependencias primero
# Esto aprovecha el caché de capas de Docker
COPY ["Titulares.Api/Titulares.Api.csproj", "Titulares.Api/"]
RUN dotnet restore "Titulares.Api/Titulares.Api.csproj"
# Copiamos el resto del código fuente
COPY . .
WORKDIR "/src/Titulares.Api"
# Compilamos la aplicación en modo Release y la publicamos en la carpeta /app/publish
RUN dotnet publish "Titulares.Api.csproj" -c Release -o /app/publish --no-restore
# Etapa 2: Imagen Final
# Usamos la imagen de runtime de ASP.NET, que es mucho más ligera
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final
WORKDIR /app
COPY --from=build /app/publish .
# Exponemos el puerto 8080. El backend escuchará en este puerto dentro del contenedor.
EXPOSE 8080
# Establecemos el entorno a Producción para que se use appsettings.Production.json
ENV ASPNETCORE_ENVIRONMENT=Production
# Punto de entrada para ejecutar la aplicación
ENTRYPOINT ["dotnet", "Titulares.Api.dll"]

View File

@@ -23,12 +23,15 @@ builder.Services.AddScoped<CsvService>();
builder.Services.AddSingleton<ConfiguracionRepositorio>();
builder.Services.AddSingleton<EstadoProcesoService>();
// Obtener los orígenes permitidos desde la configuración
var allowedOrigins = builder.Configuration.GetValue<string>("AllowedOrigins")?.Split(',') ?? new[] { "http://localhost:5173" };
// Añadimos la política de CORS
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowReactApp", builder =>
options.AddPolicy("AllowReactApp", policyBuilder =>
{
builder.WithOrigins("http://localhost:5173")
policyBuilder.WithOrigins(allowedOrigins)
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();

View File

@@ -0,0 +1,11 @@
{
"ConnectionStrings": {
"DefaultConnection": "Server=db-sqlserver;Database=TitularesDB;User Id=titularesApi;Password=PTP847Titulares;TrustServerCertificate=True;"
},
"AllowedOrigins": "http://192.168.5.128:8905",
"Logging": {
"LogLevel": {
"Default": "Warning"
}
}
}

View File

@@ -6,6 +6,7 @@
}
},
"AllowedHosts": "*",
"AllowedOrigins": "http://localhost:5173",
"ConnectionStrings": {
"DefaultConnection": "Server=TECNICA3;Database=TitularesDB;User Id=titularesApi;Password=PTP847Titulares;Trusted_Connection=True;TrustServerCertificate=True;"
}

View File

@@ -1,5 +1,5 @@
{
"RutaCsv": "C:\\temp\\titulares.csv",
"RutaCsv": "/data/titulares.csv",
"IntervaloMinutos": 15,
"CantidadTitularesAScrapear": 4,
"ScrapingActivo": false