From 3b6f7175f8793378c3d19039abe987045e7fc9a7 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Mon, 9 Mar 2026 10:06:35 -0300 Subject: [PATCH] feat: agregar soporte docker y publicar en gitea packages. Closes #11 --- .dockerignore | 10 ++++++++++ Dockerfile | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f3e874b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +**/.dockerignore +**/.env +**/bin +**/obj +**/.vs +**/.vscode +**/ignore +.git +.gitignore +Dockerfile \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..75eb282 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +# ETAPA 1: BUILD +# Usamos la imagen del SDK para compilar el código +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src + +# Copiamos primero los archivos de proyecto para aprovechar la caché de Docker +COPY ["ApiVersioningDemo.Api/ApiVersioningDemo.Api.csproj", "ApiVersioningDemo.Api/"] +RUN dotnet restore "ApiVersioningDemo.Api/ApiVersioningDemo.Api.csproj" + +# Copiamos todo el resto del código +COPY . . +WORKDIR "/src/ApiVersioningDemo.Api" +RUN dotnet build "ApiVersioningDemo.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# Publicamos la aplicación (genera los .dll finales) +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "ApiVersioningDemo.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# ETAPA 2: RUNTIME +# Usamos la imagen ligera de ASP.NET Core solo para ejecutar +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + +# Copiamos los archivos compilados de la etapa anterior +COPY --from=publish /app/publish . + +# Definimos el punto de entrada +ENTRYPOINT ["dotnet", "ApiVersioningDemo.Api.dll"] \ No newline at end of file