# Consulte https://aka.ms/customizecontainer para aprender a personalizar su contenedor de depuración y cómo Visual Studio usa este Dockerfile para compilar sus imágenes para una depuración más rápida. # Esta fase se usa cuando se ejecuta desde VS en modo rápido (valor predeterminado para la configuración de depuración) FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app EXPOSE 8080 EXPOSE 8081 # Instalación de Node.js en la fase base (si lo necesitas para el contenedor final) #RUN apt-get update && apt-get install -y nodejs npm # Instalación de Chromium y fuentes requeridas para PDF con acentos USER root RUN apt-get update && \ apt-get install -y --no-install-recommends \ wget gnupg2 ca-certificates \ fonts-liberation \ fonts-dejavu-core \ fonts-dejavu-extra \ libappindicator3-1 libasound2 \ libatk-bridge2.0-0 libatk1.0-0 libcups2 libdbus-1-3 \ libgdk-pixbuf2.0-0 libnspr4 libnss3 libx11-xcb1 \ libxcomposite1 libxdamage1 libxrandr2 xdg-utils chromium \ debconf fontconfig && \ echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections && \ apt-get install -y --no-install-recommends ttf-mscorefonts-installer && \ fc-cache -f && \ rm -rf /var/lib/apt/lists/* ENV CHROME_BIN=/usr/bin/chromium USER app # Esta fase se usa para compilar el proyecto de servicio #FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build FROM mcr.microsoft.com/dotnet/sdk:8.0-jammy AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src COPY ["phronCare.API/phronCare.API.csproj", "phronCare.API/"] COPY ["Core/Core.csproj", "Core/"] COPY ["Domain/Domain.csproj", "Domain/"] COPY ["Models/Models.csproj", "Models/"] COPY ["Transversal/Transversal.csproj", "Transversal/"] COPY ["Services/Services.csproj", "Services/"] RUN dotnet restore "./phronCare.API/phronCare.API.csproj" COPY . . WORKDIR "/src/phronCare.API" RUN dotnet build "./phronCare.API.csproj" -c $BUILD_CONFIGURATION -o /app/build # Esta fase se usa para publicar el proyecto de servicio que se copiará en la fase final. FROM build AS publish ARG BUILD_CONFIGURATION=Release RUN dotnet publish "./phronCare.API.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false # Esta fase se usa en producción o cuando se ejecuta desde VS en modo normal (valor predeterminado cuando no se usa la configuración de depuración) FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "phronCare.API.dll"]