Files

32 lines
1.1 KiB
Docker
Raw Permalink Normal View History

2025-11-20 12:39:23 -03:00
# Dockerfile.api
# ---- Etapa de Compilación (Build) ----
# Usamos la imagen del SDK de .NET para compilar la aplicación
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
# Copiamos los archivos .csproj y restauramos las dependencias primero
# Esto aprovecha el cache de Docker para acelerar futuras compilaciones
COPY ["ChatbotApi.csproj", "."]
RUN dotnet restore "./ChatbotApi.csproj"
# Copiamos el resto del código fuente y construimos la aplicación
COPY . .
WORKDIR "/src/."
RUN dotnet build "ChatbotApi.csproj" -c Release -o /app/build
# Publicamos la aplicación en modo Release
FROM build AS publish
RUN dotnet publish "ChatbotApi.csproj" -c Release -o /app/publish /p:UseAppHost=false
# ---- Etapa Final (Runtime) ----
# Usamos la imagen de runtime de ASP.NET, que es mucho más ligera
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final
WORKDIR /app
COPY --from=publish /app/publish .
# Exponemos el puerto 80, el puerto estándar para HTTP dentro del contenedor
EXPOSE 80
# El comando para iniciar la aplicación cuando el contenedor se ejecute
ENTRYPOINT ["dotnet", "ChatbotApi.dll"]