Leandro Hernan Rojas a0a87ab306
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (push) Successful in 8m15s
Add Logo Resources + Convert
2025-05-16 19:20:31 -03:00

61 lines
2.4 KiB
Docker

# 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 \
fontconfig && \
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 .
# ✅ Copiar el logo al contenedor final
COPY phronCare.API/Resources/logo.png /app/Resources/logo.png
ENTRYPOINT ["dotnet", "phronCare.API.dll"]