1- # Use the official .NET 9.0 runtime as the base image
2- FROM mcr.microsoft.com/dotnet/runtime:9.0 AS base
3- WORKDIR /app
4-
5- # Use the official .NET 9.0 SDK for building
6- FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
7- ARG BUILD_CONFIGURATION=Release
8- WORKDIR /src
9- COPY ["src/SafariBooksDownloader/SafariBooksDownloader.csproj" , "src/SafariBooksDownloader/" ]
10- RUN dotnet restore "src/SafariBooksDownloader/SafariBooksDownloader.csproj"
11- COPY . .
12- WORKDIR "/src/src/SafariBooksDownloader"
13- RUN dotnet build "SafariBooksDownloader.csproj" -c $BUILD_CONFIGURATION -o /app/build
14-
15- FROM build AS publish
16- ARG BUILD_CONFIGURATION=Release
17- RUN dotnet publish "SafariBooksDownloader.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
18-
19- FROM base AS final
20- WORKDIR /app
21- COPY --from=publish /app/publish .
22-
23- # Create volumes for Books output and cookies
24- VOLUME ["/app/Books" , "/app/cookies.json" ]
25-
26- ENTRYPOINT ["dotnet" , "SafariBooksDownloader.dll" ]
1+ FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
2+ ARG BUILD_CONFIGURATION=Release
3+
4+ WORKDIR /src
5+
6+ COPY --link ./src/Directory.Build.props .
7+
8+ COPY src/SafariBooksDownloader.Core/SafariBooksDownloader.Core.csproj SafariBooksDownloader.Core/SafariBooksDownloader.Core.csproj
9+ COPY src/SafariBooksDownloader.App/SafariBooksDownloader.App.csproj SafariBooksDownloader.App/SafariBooksDownloader.App.csproj
10+
11+ RUN dotnet restore "SafariBooksDownloader.App/SafariBooksDownloader.App.csproj"
12+
13+ COPY src/SafariBooksDownloader.Core/ SafariBooksDownloader.Core/
14+ COPY src/SafariBooksDownloader.App/ SafariBooksDownloader.App/
15+
16+ RUN dotnet build "SafariBooksDownloader.App/SafariBooksDownloader.App.csproj" \
17+ --no-restore \
18+ --configuration $BUILD_CONFIGURATION
19+
20+ FROM build AS publish
21+ ARG BUILD_CONFIGURATION=Release
22+
23+ WORKDIR /src/SafariBooksDownloader.App
24+
25+ RUN dotnet publish "SafariBooksDownloader.App.csproj" \
26+ --configuration $BUILD_CONFIGURATION \
27+ --no-restore \
28+ --output /app/publish \
29+ /p:UseAppHost=false
30+
31+ FROM mcr.microsoft.com/dotnet/runtime:9.0 AS base
32+ WORKDIR /app
33+
34+ COPY --from=publish /app/publish .
35+
36+ VOLUME ["/Books" , "/cookies.json" ]
37+
38+ ENTRYPOINT ["dotnet" , "SafariBooksDownloader.App.dll" ]
0 commit comments