diff --git a/Astrocore.Api/Dockerfile b/Astrocore.Api/Dockerfile index 20896e7..9cbe401 100644 --- a/Astrocore.Api/Dockerfile +++ b/Astrocore.Api/Dockerfile @@ -1,16 +1,3 @@ -# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. - -# Install ffmpeg in its own stage so it can be cached independently of your app code -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime-base -WORKDIR /app - -RUN apt-get update \ - && apt-get install -y --no-install-recommends ffmpeg \ - && rm -rf /var/lib/apt/lists/* - -EXPOSE 8080 -EXPOSE 8081 - # Build FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build ARG BUILD_CONFIGURATION=Release @@ -21,21 +8,24 @@ RUN dotnet restore "./Astrocore.Api/Astrocore.Api.csproj" COPY . . WORKDIR /src/Astrocore.Api -RUN dotnet build "./Astrocore.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build - -# Publish -FROM build AS publish -ARG BUILD_CONFIGURATION=Release RUN dotnet publish "./Astrocore.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false -# Final -FROM runtime-base AS final +# Runtime with ffmpeg already included +FROM jrottenberg/ffmpeg:6.1-ubuntu2204 AS runtime-ffmpeg + +# .NET runtime +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final WORKDIR /app -COPY --from=publish /app/publish . +# Copy ffmpeg binaries into the final image +COPY --from=runtime-ffmpeg /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg +COPY --from=runtime-ffmpeg /usr/local/bin/ffprobe /usr/local/bin/ffprobe + +COPY --from=build /app/publish . -# Keep your existing behavior, but don't assume APP_UID always exists at build time ARG APP_UID USER $APP_UID -ENTRYPOINT ["dotnet", "Astrocore.Api.dll"] \ No newline at end of file +EXPOSE 8080 +EXPOSE 8081 +ENTRYPOINT ["dotnet", "Astrocore.Api.dll"]