From 42a6da0f930ad1c3db764d970f8394ff1dd7fbf7 Mon Sep 17 00:00:00 2001 From: thelamer Date: Fri, 31 May 2019 10:28:47 -0700 Subject: [PATCH] multi stage the build and add lib path so emby libs do not always take precedence to sys libs --- Dockerfile | 41 ++++++++++++++++++----------------- Dockerfile.aarch64 | 42 +++++++++++++++++++----------------- Dockerfile.armhf | 42 +++++++++++++++++++----------------- root/etc/services.d/emby/run | 2 +- 4 files changed, 66 insertions(+), 61 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6e31a96..402d221 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,7 @@ -FROM lsiobase/ubuntu:bionic +FROM lsiobase/ubuntu:bionic as buildstage -# set version label -ARG BUILD_DATE -ARG VERSION +# build args ARG EMBY_RELEASE -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="thelamer" - -#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker -ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" ENV DEBIAN_FRONTEND="noninteractive" RUN \ @@ -36,21 +29,29 @@ RUN \ /tmp/opt/emby-server/system/* \ /tmp/opt/emby-server/lib/samba/* \ /tmp/opt/emby-server/lib/* \ - /tmp/opt/emby-server/bin/ff* && \ - echo "**** cleanup ****" && \ - apt-get purge -y \ - cpio \ - jq \ - rpm2cpio && \ - apt-get autoremove -fy && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + /tmp/opt/emby-server/bin/ff* + +# runtime stage +FROM lsiobase/ubuntu:bionic + +# set version label +ARG BUILD_DATE +ARG VERSION +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="thelamer" + +# add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker +ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" # add local files +COPY --from=buildstage /app/emby /app/emby COPY root/ / +# lib setup +RUN \ + echo "/app/emby" > /etc/ld.so.conf.d/emby.conf && \ + ldconfig + # ports and volumes EXPOSE 8096 8920 VOLUME /config /transcode diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index a100b2a..c29a360 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,14 +1,7 @@ -FROM lsiobase/ubuntu:arm64v8-bionic +FROM lsiobase/ubuntu:arm64v8-bionic as buildstage -# set version label -ARG BUILD_DATE -ARG VERSION +# build args ARG EMBY_RELEASE -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="thelamer" - -#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker -ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" ENV DEBIAN_FRONTEND="noninteractive" RUN \ @@ -36,21 +29,30 @@ RUN \ /tmp/opt/emby-server/system/* \ /tmp/opt/emby-server/lib/samba/* \ /tmp/opt/emby-server/lib/* \ - /tmp/opt/emby-server/bin/ff* && \ - echo "**** cleanup ****" && \ - apt-get purge -y \ - cpio \ - jq \ - rpm2cpio && \ - apt-get autoremove -fy && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + /tmp/opt/emby-server/bin/ff* + +# runtime stage +FROM lsiobase/ubuntu:arm64v8-bionic + +# set version label +ARG BUILD_DATE +ARG VERSION +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="thelamer" + +# add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker +ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" # add local files +COPY --from=buildstage /app/emby /app/emby COPY root/ / +# lib setup +RUN \ + echo "**** add lib path ****" && \ + echo "/app/emby" > /etc/ld.so.conf.d/emby.conf && \ + ldconfig + # ports and volumes EXPOSE 8096 8920 VOLUME /config /transcode diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 29d658a..0e63e9e 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,14 +1,7 @@ -FROM lsiobase/ubuntu:arm32v7-bionic +FROM lsiobase/ubuntu:arm32v7-bionic as buildstage -# set version label -ARG BUILD_DATE -ARG VERSION +# build args ARG EMBY_RELEASE -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="thelamer" - -#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker -ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" ENV DEBIAN_FRONTEND="noninteractive" RUN \ @@ -36,21 +29,30 @@ RUN \ /tmp/opt/emby-server/system/* \ /tmp/opt/emby-server/lib/samba/* \ /tmp/opt/emby-server/lib/* \ - /tmp/opt/emby-server/bin/ff* && \ - echo "**** cleanup ****" && \ - apt-get purge -y \ - cpio \ - jq \ - rpm2cpio && \ - apt-get autoremove -fy && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + /tmp/opt/emby-server/bin/ff* + +# runtime stage +FROM lsiobase/ubuntu:arm32v7-bionic + +# set version label +ARG BUILD_DATE +ARG VERSION +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="thelamer" + +# add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker +ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" # add local files +COPY --from=buildstage /app/emby /app/emby COPY root/ / +# lib setup +RUN \ + echo "**** add lib path ****" && \ + echo "/app/emby" > /etc/ld.so.conf.d/emby.conf && \ + ldconfig + # ports and volumes EXPOSE 8096 8920 VOLUME /config /transcode diff --git a/root/etc/services.d/emby/run b/root/etc/services.d/emby/run index 223faa3..00c5c3a 100644 --- a/root/etc/services.d/emby/run +++ b/root/etc/services.d/emby/run @@ -1,6 +1,6 @@ #!/usr/bin/with-contenv bash -LD_LIBRARY_PATH=/app/emby exec \ +exec \ s6-setuidgid abc /app/emby/EmbyServer \ -programdata /config \ -ffdetect /app/emby/ffdetect \