From 927dedb357a76f9c30aeb17046cb570ddf91bb83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20White?= Date: Tue, 2 Sep 2025 13:56:37 -0600 Subject: [PATCH] feat: dockerized version --- .dockerignore | 17 ++++++++ .../Core.Thalos.DAL.API.csproj | 2 +- Core.Thalos.Domain/Core.Thalos.Domain.csproj | 4 +- .../Core.Thalos.Provider.csproj | 4 +- Dockerfile | 40 +++++++++++++++++++ nuget.config | 9 +++++ 6 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 nuget.config diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8d8479a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,17 @@ +**/bin/ +**/obj/ +**/.vs/ +**/.idea/ +**/.vscode/ +**/*.user +**/*.suo +**/*.swp +**/*.csproj.user +**/*.log +**/Properties/launchSettings.json +**/appsettings.Local.json +**/appsettings.*.Development.json +.git/ +.gitignore +Dockerfile +docker-compose*.yml diff --git a/Core.Thalos.DAL.API/Core.Thalos.DAL.API.csproj b/Core.Thalos.DAL.API/Core.Thalos.DAL.API.csproj index 283b5a0..3128129 100644 --- a/Core.Thalos.DAL.API/Core.Thalos.DAL.API.csproj +++ b/Core.Thalos.DAL.API/Core.Thalos.DAL.API.csproj @@ -15,7 +15,7 @@ - + diff --git a/Core.Thalos.Domain/Core.Thalos.Domain.csproj b/Core.Thalos.Domain/Core.Thalos.Domain.csproj index 52ab47a..55eacc1 100644 --- a/Core.Thalos.Domain/Core.Thalos.Domain.csproj +++ b/Core.Thalos.Domain/Core.Thalos.Domain.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/Core.Thalos.Provider/Core.Thalos.Provider.csproj b/Core.Thalos.Provider/Core.Thalos.Provider.csproj index c188dbc..ee97c48 100644 --- a/Core.Thalos.Provider/Core.Thalos.Provider.csproj +++ b/Core.Thalos.Provider/Core.Thalos.Provider.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b50effe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +# ============ Build ============ +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +WORKDIR /src + +# Copia opcional del nuget.config si existe en el root +COPY nuget.config* ./ + +# Copiamos csprojs primero para aprovechar caché de restore +COPY Core.Thalos.Domain/Core.Thalos.Domain.csproj Core.Thalos.Domain/ +COPY Core.Thalos.Provider/Core.Thalos.Provider.csproj Core.Thalos.Provider/ +COPY Core.Thalos.Infraestructure/Core.Thalos.Infrastructure.csproj Core.Thalos.Infraestructure/ +COPY Core.Thalos.DAL.API/Core.Thalos.DAL.API.csproj Core.Thalos.DAL.API/ + +RUN dotnet restore Core.Thalos.DAL.API/Core.Thalos.DAL.API.csproj + +# Copiamos el resto y compilamos +COPY . . +RUN dotnet build Core.Thalos.DAL.API/Core.Thalos.DAL.API.csproj -c Release -o /app/build + +# ============ Publish ============ +FROM build AS publish +RUN dotnet publish Core.Thalos.DAL.API/Core.Thalos.DAL.API.csproj -c Release -o /app/publish \ + --no-restore + +# ============ Runtime ============ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final +# (Opcional) instalar curl para healthcheck HTTP +RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* + +WORKDIR /app +EXPOSE 8080 +# Usuario no-root +RUN useradd -m appuser +USER appuser + +ENV ASPNETCORE_URLS=http://+:8080 +# Usa env vars y/o UserSecrets; no guardes tokens en la imagen. :contentReference[oaicite:4]{index=4} + +COPY --from=publish /app/publish ./ +ENTRYPOINT ["dotnet", "Core.Thalos.DAL.API.dll"] diff --git a/nuget.config b/nuget.config new file mode 100644 index 0000000..c4407da --- /dev/null +++ b/nuget.config @@ -0,0 +1,9 @@ + + + + + + + + +