-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
40 lines (32 loc) · 1.32 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Utiliza la imagen oficial de .NET SDK 8
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
# Instala Node.js y limpia en un solo paso para reducir la cantidad de capas
RUN apt-get update -yq \
&& apt-get install -yq curl gnupg \
&& curl -sL https://deb.nodesource.com/setup_18.x | bash - \
&& apt-get install -yq nodejs \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Verifica la instalación de Node.js y npm, actualiza npm
RUN npm install -g npm@latest
# Ajusta la ruta del COPY para considerar la estructura de directorios correcta y copia el archivo csproj
COPY ./YouCode.GUI/YouCode.GUI.csproj ./YouCode.GUI/
# Cambia al directorio del proyecto antes de restaurar
WORKDIR /app/YouCode.GUI
RUN dotnet restore
# Copia el resto de los archivos del proyecto
COPY ./YouCode.BE/ ./
COPY ./YouCode.DAL/ ./
COPY ./YouCode.BL/ ./
COPY ./YouCode.GUI/ ./
# Usa npm ci para instalar dependencias, optimizado para entornos de producción
RUN npm ci --only=production
# Compila la aplicación .NET especificando el proyecto YouCode.GUI
RUN dotnet publish "./YouCode.GUI/YouCode.GUI.csproj" -c Release -o out
# Utiliza la imagen de runtime de ASP.NET Core
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY --from=build /app/YouCode.GUI/out .
EXPOSE 5000
ENTRYPOINT ["dotnet", "YouCode.GUI.dll"]