diff --git a/transcoder/Dockerfile b/transcoder/Dockerfile index a4882850..5771885c 100644 --- a/transcoder/Dockerfile +++ b/transcoder/Dockerfile @@ -1,4 +1,23 @@ -FROM golang:1.21 as build +# FROM golang:1.21 as build +FROM debian:trixie-slim as build +# those were copied from https://github.com/docker-library/golang/blob/master/Dockerfile-linux.template +ENV GOTOOLCHAIN=local +ENV GOPATH /go +ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + ca-certificates openssl \ + golang\ + g++ \ + gcc \ + libc6-dev \ + make \ + pkg-config + +# https://github.com/golang/go/issues/54400 +ENV SSL_CERT_DIR=/etc/ssl/certs +RUN update-ca-certificates RUN apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ffmpeg libavformat-dev libavutil-dev libswscale-dev libmediainfo-dev \ @@ -11,10 +30,14 @@ COPY . . RUN go build -o ./transcoder # debian is required for nvidia hardware acceleration -FROM debian:12-slim +# we use trixie (debian's testing because ffmpeg on latest is v5 and we need v6) +# https://packages.debian.org/bookworm/ffmpeg for version tracking +FROM debian:trixie-slim RUN apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y ffmpeg libmediainfo-dev \ - && apt-get autoremove -y + && apt-get clean autoclean -y \ + && apt-get autoremove -y \ + && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=build /app/transcoder /app/transcoder diff --git a/transcoder/Dockerfile.dev b/transcoder/Dockerfile.dev index 47acc5eb..5dd19813 100644 --- a/transcoder/Dockerfile.dev +++ b/transcoder/Dockerfile.dev @@ -1,10 +1,33 @@ -FROM golang:1.21 +# we use trixie (debian's testing because ffmpeg on latest is v5 and we need v6) +# https://packages.debian.org/bookworm/ffmpeg for version tracking +# FROM golang:1.21 +# trixie's golang is also 1.21 +FROM debian:trixie-slim +# those were copied from https://github.com/docker-library/golang/blob/master/Dockerfile-linux.template +ENV GOTOOLCHAIN=local +ENV GOPATH /go +ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + ca-certificates openssl \ + golang\ + g++ \ + gcc \ + libc6-dev \ + make \ + pkg-config + +# https://github.com/golang/go/issues/54400 +ENV SSL_CERT_DIR=/etc/ssl/certs +RUN update-ca-certificates + +RUN go install github.com/bokwoon95/wgo@latest RUN apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ffmpeg libavformat-dev libavutil-dev libswscale-dev libmediainfo-dev \ && apt-get clean autoclean -y \ && apt-get autoremove -y -RUN go install github.com/bokwoon95/wgo@latest WORKDIR /app # flags for nvidia acceleration on docker < 25.0