Try Docker 1811
This commit is contained in:
30
backend/src/Titulares.Api/Dockerfile
Normal file
30
backend/src/Titulares.Api/Dockerfile
Normal 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"]
|
||||
@@ -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();
|
||||
|
||||
11
backend/src/Titulares.Api/appsettings.Production.json
Normal file
11
backend/src/Titulares.Api/appsettings.Production.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"RutaCsv": "C:\\temp\\titulares.csv",
|
||||
"RutaCsv": "/data/titulares.csv",
|
||||
"IntervaloMinutos": 15,
|
||||
"CantidadTitularesAScrapear": 4,
|
||||
"ScrapingActivo": false
|
||||
|
||||
Reference in New Issue
Block a user