diff --git a/WatchIt.WebAPI/Dockerfile b/WatchIt.WebAPI/Dockerfile new file mode 100644 index 0000000..873de8f --- /dev/null +++ b/WatchIt.WebAPI/Dockerfile @@ -0,0 +1,25 @@ +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base +USER $APP_UID +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["WatchIt.WebAPI/WatchIt.WebAPI.csproj", "WatchIt.WebAPI/"] +COPY ["WatchIt.Database/WatchIt.Database.csproj", "WatchIt.Database/"] +COPY ["WatchIt.DTO/WatchIt.DTO.csproj", "WatchIt.DTO/"] +RUN dotnet restore "WatchIt.WebAPI/WatchIt.WebAPI.csproj" +COPY . . +WORKDIR "/src/WatchIt.WebAPI" +RUN dotnet build "WatchIt.WebAPI.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "WatchIt.WebAPI.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "WatchIt.WebAPI.dll"] diff --git a/WatchIt.WebAPI/WatchIt.WebAPI.csproj b/WatchIt.WebAPI/WatchIt.WebAPI.csproj index e49d57b..f7e5dfe 100644 --- a/WatchIt.WebAPI/WatchIt.WebAPI.csproj +++ b/WatchIt.WebAPI/WatchIt.WebAPI.csproj @@ -4,6 +4,7 @@ net9.0 enable enable + Linux @@ -29,4 +30,19 @@ + + + .dockerignore + + + + + <_ContentIncludedByDefault Remove="WatchIt.WebAPI.Controllers\obj\project.assets.json" /> + <_ContentIncludedByDefault Remove="WatchIt.WebAPI.Controllers\obj\project.packagespec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.WebAPI.Controllers\obj\WatchIt.WebAPI.Controllers.csproj.nuget.dgspec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.WebAPI.Validators\obj\project.assets.json" /> + <_ContentIncludedByDefault Remove="WatchIt.WebAPI.Validators\obj\project.packagespec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.WebAPI.Validators\obj\WatchIt.WebAPI.Validators.csproj.nuget.dgspec.json" /> + + diff --git a/WatchIt.Website/Dockerfile b/WatchIt.Website/Dockerfile new file mode 100644 index 0000000..c9a70a5 --- /dev/null +++ b/WatchIt.Website/Dockerfile @@ -0,0 +1,25 @@ +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base +USER $APP_UID +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["WatchIt.Website/WatchIt.Website.csproj", "WatchIt.Website/"] +COPY ["WatchIt.DTO/WatchIt.DTO.csproj", "WatchIt.DTO/"] +COPY ["WatchIt.Database/WatchIt.Database.csproj", "WatchIt.Database/"] +RUN dotnet restore "WatchIt.Website/WatchIt.Website.csproj" +COPY . . +WORKDIR "/src/WatchIt.Website" +RUN dotnet build "WatchIt.Website.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "WatchIt.Website.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "WatchIt.Website.dll"] diff --git a/WatchIt.Website/WatchIt.Website.csproj b/WatchIt.Website/WatchIt.Website.csproj index 3a7abe3..5e0064e 100644 --- a/WatchIt.Website/WatchIt.Website.csproj +++ b/WatchIt.Website/WatchIt.Website.csproj @@ -5,6 +5,7 @@ enable enable 13 + Linux @@ -72,6 +73,24 @@ <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.js.map" /> <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js" /> <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js.map" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Authentication\obj\project.assets.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Authentication\obj\project.packagespec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Authentication\obj\WatchIt.Website.Services.Authentication.csproj.nuget.dgspec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Client\obj\project.assets.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Client\obj\project.packagespec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Client\obj\WatchIt.Website.Services.Client.csproj.nuget.dgspec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Configuration\obj\project.assets.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Configuration\obj\project.packagespec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Configuration\obj\WatchIt.Website.Services.Configuration.csproj.nuget.dgspec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Tokens\obj\project.assets.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Tokens\obj\project.packagespec.json" /> + <_ContentIncludedByDefault Remove="WatchIt.Website.Services\WatchIt.Website.Services.Tokens\obj\WatchIt.Website.Services.Tokens.csproj.nuget.dgspec.json" /> + + + + + .dockerignore +