diff --git a/src/HeartTrackAPI/Dockerfile b/src/HeartTrackAPI/Dockerfile index 79c2b47..3cabeae 100644 --- a/src/HeartTrackAPI/Dockerfile +++ b/src/HeartTrackAPI/Dockerfile @@ -1,47 +1,33 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -USER $APP_UID -RUN echo $APP_UID -RUN whoami -WORKDIR /app -EXPOSE 8080 -EXPOSE 8081 - FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src -COPY ["HeartTrackAPI/HeartTrackAPI.csproj", "HeartTrackAPI/"] -COPY ["StubbedContextLib/StubbedContextLib.csproj", "StubbedContextLib/"] -COPY ["Shared/Shared.csproj", "Shared/"] -COPY ["Entities/Entities.csproj", "Entities/"] -COPY ["Dto/Dto.csproj", "Dto/"] -COPY ["APIMappers/APIMappers.csproj", "APIMappers/"] -COPY ["EFMappers/EFMappers.csproj", "EFMappers/"] -COPY ["DbContextLib/DbContextLib.csproj", "DbContextLib/"] -COPY ["Model/Model.csproj", "Model/"] -COPY ["Model2Entities/Model2Entities.csproj", "Model2Entities/"] -COPY ["StubAPI/StubAPI.csproj", "StubAPI/"] -COPY ["StubbedContextLib/StubbedContextLib.csproj", "StubbedContextLib/"] -RUN dotnet restore "HeartTrackAPI/HeartTrackAPI.csproj" + COPY . . -RUN dotnet tool install --global dotnet-ef --version 8.0 +RUN dotnet tool install --global dotnet-ef --version 8.0 ENV PATH="${PATH}:/root/.dotnet/tools" + # Add the migrations RUN dotnet-ef migrations add --project StubbedContextLib/StubbedContextLib.csproj --startup-project HeartTrackAPI/HeartTrackAPI.csproj --context StubbedContextLib.TrainingStubbedContext --configuration Debug Initial # Update the database RUN dotnet-ef database update --project StubbedContextLib/StubbedContextLib.csproj --startup-project HeartTrackAPI/HeartTrackAPI.csproj --context StubbedContextLib.TrainingStubbedContext --configuration Debug -RUN chmod 777 HeartTrackAPI/uca.HeartTrack.db -WORKDIR "/src/HeartTrackAPI" -RUN dotnet build "HeartTrackAPI.csproj" -c $BUILD_CONFIGURATION -o /app/build +USER root +RUN chown -R app:app HeartTrackAPI/ -FROM build AS publish +WORKDIR /src/HeartTrackAPI ARG BUILD_CONFIGURATION=Release RUN dotnet publish "HeartTrackAPI.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false -FROM base AS final + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER $APP_UID WORKDIR /app -COPY --from=publish /app/publish . -COPY --from=publish /src/HeartTrackAPI/uca.HeartTrack.db . + +COPY --from=build /app/publish . +COPY --from=build /src/HeartTrackAPI/uca.HeartTrack.db . RUN ls -l uca.HeartTrack.db +EXPOSE 8080 +EXPOSE 8081 + ENTRYPOINT ["dotnet", "HeartTrackAPI.dll"] \ No newline at end of file