diff --git a/Dockerfile b/Dockerfile index 7d687f796..1f9bd7d16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ FROM blakeblackshear/frigate-nginx:1.0.2 AS nginx FROM slim-base AS wget ARG DEBIAN_FRONTEND RUN apt-get update \ - && apt-get install -y wget \ + && apt-get install -y wget xz-utils \ && rm -rf /var/lib/apt/lists/* WORKDIR /rootfs @@ -155,6 +155,10 @@ ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" ENV PATH="/usr/lib/btbn-ffmpeg/bin:/usr/local/go2rtc/bin:/usr/local/nginx/sbin:${PATH}" +# TODO: remove after a new verion of s6-overlay is released. See: +# https://github.com/just-containers/s6-overlay/issues/460#issuecomment-1327127006 +ENV S6_SERVICES_READYTIME=50 + # Install dependencies RUN --mount=type=bind,source=docker/install_deps.sh,target=/deps/install_deps.sh \ /deps/install_deps.sh @@ -221,4 +225,4 @@ FROM deps WORKDIR /opt/frigate/ COPY --from=rootfs / / -CMD ["python3", "-u", "-m", "frigate"] +CMD ["with-contenv", "python3", "-u", "-m", "frigate"] diff --git a/docker/install_deps.sh b/docker/install_deps.sh index 66676651f..929100817 100755 --- a/docker/install_deps.sh +++ b/docker/install_deps.sh @@ -74,7 +74,7 @@ if [[ "${TARGETARCH}" == "arm" ]]; then libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev fi -apt-get purge gnupg apt-transport-https wget -y +apt-get purge gnupg apt-transport-https wget xz-utils -y apt-get clean autoclean -y apt-get autoremove --purge -y rm -rf /var/lib/apt/lists/* diff --git a/docker/install_s6_overlay.sh b/docker/install_s6_overlay.sh index 8aa878a60..dc032179c 100755 --- a/docker/install_s6_overlay.sh +++ b/docker/install_s6_overlay.sh @@ -2,14 +2,20 @@ set -euxo pipefail -s6_arch="${TARGETARCH}" +s6_version="3.1.2.1" + if [[ "${TARGETARCH}" == "amd64" ]]; then - s6_arch="amd64" + s6_arch="x86_64" elif [[ "${TARGETARCH}" == "arm" ]]; then s6_arch="armhf" elif [[ "${TARGETARCH}" == "arm64" ]]; then s6_arch="aarch64" fi -wget -qO /tmp/s6-overlay-installer "https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.3/s6-overlay-${s6_arch}-installer" -chmod +x /tmp/s6-overlay-installer -/tmp/s6-overlay-installer /rootfs/ + +mkdir -p /rootfs/ + +wget -qO- "https://github.com/just-containers/s6-overlay/releases/download/v${s6_version}/s6-overlay-noarch.tar.xz" | + tar -C /rootfs/ -Jxpf - + +wget -qO- "https://github.com/just-containers/s6-overlay/releases/download/v${s6_version}/s6-overlay-${s6_arch}.tar.xz" | + tar -C /rootfs/ -Jxpf - diff --git a/docker/rootfs/etc/services.d/go2rtc/finish b/docker/rootfs/etc/services.d/go2rtc/finish index da03be864..3a9da25ce 100755 --- a/docker/rootfs/etc/services.d/go2rtc/finish +++ b/docker/rootfs/etc/services.d/go2rtc/finish @@ -1,7 +1,7 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash # shellcheck shell=bash # Take down the S6 supervision tree when the process fails if [[ "${1}" -ne 0 && "${1}" -ne 256 ]]; then - exec s6-svscanctl -t /var/run/s6/services + exec /run/s6/basedir/bin/halt fi diff --git a/docker/rootfs/etc/services.d/go2rtc/run b/docker/rootfs/etc/services.d/go2rtc/run index c1352a50d..6ae2918e5 100755 --- a/docker/rootfs/etc/services.d/go2rtc/run +++ b/docker/rootfs/etc/services.d/go2rtc/run @@ -1,4 +1,4 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash # shellcheck shell=bash # https://gist.github.com/mohanpedala/1e2ff5661761d3abd0385e8223e16425?permalink_comment_id=3945021 diff --git a/docker/rootfs/etc/services.d/nginx/finish b/docker/rootfs/etc/services.d/nginx/finish index da03be864..3a9da25ce 100755 --- a/docker/rootfs/etc/services.d/nginx/finish +++ b/docker/rootfs/etc/services.d/nginx/finish @@ -1,7 +1,7 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash # shellcheck shell=bash # Take down the S6 supervision tree when the process fails if [[ "${1}" -ne 0 && "${1}" -ne 256 ]]; then - exec s6-svscanctl -t /var/run/s6/services + exec /run/s6/basedir/bin/halt fi diff --git a/docker/rootfs/etc/services.d/nginx/run b/docker/rootfs/etc/services.d/nginx/run index 2ef1dd8af..18de12f59 100755 --- a/docker/rootfs/etc/services.d/nginx/run +++ b/docker/rootfs/etc/services.d/nginx/run @@ -1,4 +1,4 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash # shellcheck shell=bash exec nginx