Browse Source

use ffmpeg 7.1.1 for nvidia docker (#2038)

pull/2039/head
Jason Dove 1 week ago committed by GitHub
parent
commit
69a1e718df
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 12
      ErsatzTV.Infrastructure/Health/Checks/FFmpegVersionHealthCheck.cs
  3. 19
      docker/nvidia/Dockerfile

1
CHANGELOG.md

@ -42,6 +42,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). @@ -42,6 +42,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Remove requirement to have Jellyfin admin user; user id is no longer required on requests to latest Jellyfin server
- Upgrade bundled ffmpeg on Windows from 6.1 to 7.1.1
- Upgrade VAAPI docker image Ubuntu base from 22 to 24; bundled ffmpeg from 6.1 to 7.1.1
- Upgrade NVIDIA docker image Ubuntu base from 20 to 24; bundled ffmpeg from 6.1 to 7.1.1
- Upgrade base, arm, arm64 docker images bundled ffmpeg from 6.1 to 7.1.1
### Fixed

12
ErsatzTV.Infrastructure/Health/Checks/FFmpegVersionHealthCheck.cs

@ -8,7 +8,7 @@ namespace ErsatzTV.Infrastructure.Health.Checks; @@ -8,7 +8,7 @@ namespace ErsatzTV.Infrastructure.Health.Checks;
public class FFmpegVersionHealthCheck : BaseHealthCheck, IFFmpegVersionHealthCheck
{
private const string BundledVersion = "6.1";
private const string BundledVersion = "7.1.1";
private const string BundledVersionVaapi = "7.1.1";
private const string WindowsVersionPrefix = "n7.1.1";
@ -78,19 +78,19 @@ public class FFmpegVersionHealthCheck : BaseHealthCheck, IFFmpegVersionHealthChe @@ -78,19 +78,19 @@ public class FFmpegVersionHealthCheck : BaseHealthCheck, IFFmpegVersionHealthChe
{
if (version.StartsWith("3.", StringComparison.OrdinalIgnoreCase) ||
version.StartsWith("4.", StringComparison.OrdinalIgnoreCase) ||
version.StartsWith("5.", StringComparison.OrdinalIgnoreCase))
version.StartsWith("5.", StringComparison.OrdinalIgnoreCase) ||
version.StartsWith("6.", StringComparison.OrdinalIgnoreCase))
{
return FailResult($"{app} version {version} is too old; please install 6.1!");
return FailResult($"{app} version {version} is too old; please install 7.1.1!");
}
if (!version.StartsWith("6.1", StringComparison.OrdinalIgnoreCase) &&
!version.StartsWith("7.1.1", StringComparison.OrdinalIgnoreCase) &&
if (!version.StartsWith("7.1.1", StringComparison.OrdinalIgnoreCase) &&
!version.StartsWith(WindowsVersionPrefix, StringComparison.OrdinalIgnoreCase) &&
version != BundledVersion &&
version != BundledVersionVaapi)
{
return WarningResult(
$"{app} version {version} is unexpected and may have problems; please install 6.1!");
$"{app} version {version} is unexpected and may have problems; please install 7.1.1!");
}
return None;

19
docker/nvidia/Dockerfile

@ -1,17 +1,11 @@ @@ -1,17 +1,11 @@
FROM jasongdove/ersatztv-ffmpeg:6.1-nvidia AS runtime-base
FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble-amd64 AS dotnet-runtime
RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
dpkg -i packages-microsoft-prod.deb && \
rm packages-microsoft-prod.deb && \
apt-get -yqq update && \
apt-get install -yq aspnetcore-runtime-8.0 && \
apt-get autoremove -y && \
apt-get clean -y
FROM jasongdove/ersatztv-ffmpeg:7.1.1-nvidia AS runtime-base
COPY --from=dotnet-runtime /usr/share/dotnet /usr/share/dotnet
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
FROM mcr.microsoft.com/dotnet/sdk:8.0-noble-amd64 AS build
RUN apt-get update && apt-get install -y ca-certificates gnupg
WORKDIR /source
# copy csproj and restore as distinct layers
@ -38,10 +32,10 @@ COPY ErsatzTV.Infrastructure.MySql/. ./ErsatzTV.Infrastructure.MySql/ @@ -38,10 +32,10 @@ COPY ErsatzTV.Infrastructure.MySql/. ./ErsatzTV.Infrastructure.MySql/
COPY ErsatzTV.Scanner/. ./ErsatzTV.Scanner/
ARG INFO_VERSION="unknown"
WORKDIR /source/ErsatzTV.Scanner
RUN dotnet publish ErsatzTV.Scanner.csproj --framework net8.0 -c release -o /app -r linux-x64 --self-contained false --no-restore /p:DebugType=Embedded /p:InformationalVersion=${INFO_VERSION}
RUN dotnet publish ErsatzTV.Scanner.csproj -c release -o /app -r linux-x64 --self-contained false --no-restore /p:DebugType=Embedded /p:InformationalVersion=${INFO_VERSION}
WORKDIR /source/ErsatzTV
RUN sed -i '/Scanner/d' ErsatzTV.csproj
RUN dotnet publish ErsatzTV.csproj --framework net8.0 -c release -o /app -r linux-x64 --self-contained false --no-restore /p:DebugType=Embedded /p:InformationalVersion=${INFO_VERSION}
RUN dotnet publish ErsatzTV.csproj -c release -o /app -r linux-x64 --self-contained false --no-restore /p:DebugType=Embedded /p:InformationalVersion=${INFO_VERSION}
# final stage/image
FROM runtime-base
@ -51,4 +45,5 @@ WORKDIR /app @@ -51,4 +45,5 @@ WORKDIR /app
COPY --from=build /app ./
ENV ETV_CONFIG_FOLDER=/config
ENV ETV_TRANSCODE_FOLDER=/transcode
ENV ETV_DISABLE_VULKAN=1
ENTRYPOINT ["./ErsatzTV"]

Loading…
Cancel
Save