Creado apartir del commit b888de6c92056de294456f581a56e25e734d4ab7 de develop
This commit is contained in:
+57
@@ -0,0 +1,57 @@
|
||||
# --------------------------------------------------------------------------------------
|
||||
# 1. ETAPA DE CONSTRUCCIÓN (BUILD STAGE)
|
||||
# Utiliza la imagen SDK para compilar la aplicación.
|
||||
# --------------------------------------------------------------------------------------
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||
WORKDIR /src
|
||||
|
||||
COPY NuGet.Config .
|
||||
# Copia los archivos de proyecto (.csproj) de cada subdirectorio y restáuralos.
|
||||
# Esto aprovecha el caché de Docker si solo cambian los paquetes, no el código.
|
||||
COPY ["adas-core/adas-core.csproj", "adas-core/"]
|
||||
COPY ["adas-core.Application/adas-core.Application.csproj", "adas-core.Application/"]
|
||||
COPY ["adas-core.Authentication/adas-core.Authentication.csproj", "adas-core.Authentication/"]
|
||||
COPY ["adas-core.Domain/adas-core.Domain.csproj", "adas-core.Domain/"]
|
||||
COPY ["adas-core.Infrastructure/adas-core.Infrastructure.csproj", "adas-core.Infrastructure/"]
|
||||
COPY ["adas-core.LdapLogin/adas-core.LdapLogin.csproj", "adas-core.LdapLogin/"]
|
||||
COPY ["adas-core.LocalLogin/adas-core.LocalLogin.csproj", "adas-core.LocalLogin/"]
|
||||
COPY ["adas-core.module.LightBeacons/adas-core.module.LightBeacons.csproj", "adas-core.module.LightBeacons/"]
|
||||
COPY ["adas-core.module.ProxyDevices/adas-core.module.ProxyDevices.csproj", "adas-core.module.ProxyDevices/"]
|
||||
COPY ["adas-core.module.Relays/adas-core.module.Relays.csproj", "adas-core.module.Relays/"]
|
||||
COPY ["adas-core.Test/adas-core.Test.csproj", "adas-core.Test/"]
|
||||
# ... (Añade COPY para el resto de proyectos .csproj: LdapLogin, LocalLogin, modules, Test si son dependencias)
|
||||
|
||||
# Copia el archivo de solución (.sln) si existe, si no, usa el siguiente comando con los .csproj
|
||||
# En este caso, asumiremos que se restaura y compila por proyecto principal.
|
||||
# Si tienes un archivo de solución, es mejor copiarlo aquí.
|
||||
|
||||
# Restaura las dependencias (NuGet)
|
||||
RUN dotnet restore "adas-core/adas-core.csproj"
|
||||
|
||||
# Copia el resto de los archivos fuente (todo el código)
|
||||
COPY . .
|
||||
|
||||
# Cambia al directorio del proyecto principal
|
||||
WORKDIR /src/adas-core
|
||||
|
||||
# Publica la aplicación final en modo Release
|
||||
# El argumento -o /app/publish indica dónde se guardará el resultado de la publicación.
|
||||
RUN dotnet publish "adas-core.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------
|
||||
# 2. ETAPA FINAL (RUNTIME STAGE)
|
||||
# Utiliza la imagen de ejecución, que es más pequeña y no contiene herramientas de compilación.
|
||||
# --------------------------------------------------------------------------------------
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final
|
||||
WORKDIR /app
|
||||
|
||||
# Copia los archivos publicados desde la etapa 'build'
|
||||
COPY --from=build /app/publish .
|
||||
|
||||
# Define el punto de entrada de la aplicación
|
||||
# Este es el nombre del ensamblado DLL principal
|
||||
ENTRYPOINT ["dotnet", "adas-core.dll"]
|
||||
# El puerto de escucha por defecto de ASP.NET Core en Docker es el 8080 (o 80 en versiones anteriores)
|
||||
ENV ASPNETCORE_URLS=http://+:80
|
||||
EXPOSE 80
|
||||
Reference in New Issue
Block a user