From 5b6cc8b1a11ec6f427634a3e90bf0d51963c823c Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Sat, 17 Mar 2018 22:10:09 +0000 Subject: [PATCH 01/10] Add missing badge labels in README [SKIP CI] --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a8f8323..5b111e8 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@ [hub]: https://hub.docker.com/r/spritsail/plex-media-server [git]: https://github.com/spritsail/plex-media-server [drone]: https://drone.spritsail.io/spritsail/plex-media-server +[mbdg]: https://microbadger.com/images/spritsail/plex-media-server # [spritsail/plex-media-server][hub] -[![](https://images.microbadger.com/badges/image/spritsail/plex-media-server.svg)](https://microbadger.com/images/spritsail/plex-media-server) +[![](https://images.microbadger.com/badges/image/spritsail/plex-media-server.svg)][mbdg] [![Latest Version](https://images.microbadger.com/badges/version/spritsail/plex-media-server.svg)][hub] [![Git Commit](https://images.microbadger.com/badges/commit/spritsail/plex-media-server.svg)][git] [![Docker Pulls](https://img.shields.io/docker/pulls/spritsail/plex-media-server.svg)][hub] From abf60351f9800d6c7e388185c1e2441473f529cd Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Fri, 30 Mar 2018 00:31:38 +0100 Subject: [PATCH 02/10] Update libgcc1 and libstdc++ Use stretch stable packages for now --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8e1f4ce..e952445 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,8 +3,8 @@ FROM spritsail/busybox:libressl ARG PLEX_VER=latest ARG PLEX_URL ARG PLEX_SHA -ARG LIBSTDCPP_VER=8-20180312-2 -ARG LIBGCC1_VER=8-20180312-2 +ARG LIBSTDCPP_VER=6.3.0-18+deb9u1 +ARG LIBGCC1_VER=6.3.0-18+deb9u1 LABEL maintainer="Spritsail " \ org.label-schema.vendor="Spritsail" \ @@ -19,8 +19,8 @@ ADD start_pms /usr/sbin/start_pms WORKDIR /tmp RUN chmod +x /usr/sbin/start_pms \ - && wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_${LIBSTDCPP_VER}_amd64.deb \ - && wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libgcc1_${LIBGCC1_VER}_amd64.deb \ + && wget http://ftp.de.debian.org/debian/pool/main/g/gcc-${LIBSTDCPP_VER:0:1}/libstdc++6_${LIBSTDCPP_VER}_amd64.deb \ + && wget http://ftp.de.debian.org/debian/pool/main/g/gcc-${LIBGCC1_VER:0:1}/libgcc1_${LIBGCC1_VER}_amd64.deb \ && dpkg-deb -x libstdc++6*.deb . \ && dpkg-deb -x libgcc1*.deb . \ # We only need the lib files, everything else is debian junk. From 133e397987acdfa840434d1ad21430fe02dd3938 Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Fri, 20 Apr 2018 00:16:08 +0100 Subject: [PATCH 03/10] Add lastbuild badge [CI SKIP] --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b111e8..b029e81 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,13 @@ # [spritsail/plex-media-server][hub] -[![](https://images.microbadger.com/badges/image/spritsail/plex-media-server.svg)][mbdg] +[![Layers](https://images.microbadger.com/badges/image/spritsail/plex-media-server.svg)][mbdg] [![Latest Version](https://images.microbadger.com/badges/version/spritsail/plex-media-server.svg)][hub] [![Git Commit](https://images.microbadger.com/badges/commit/spritsail/plex-media-server.svg)][git] [![Docker Pulls](https://img.shields.io/docker/pulls/spritsail/plex-media-server.svg)][hub] [![Docker Stars](https://img.shields.io/docker/stars/spritsail/plex-media-server.svg)][hub] [![Build Status](https://drone.spritsail.io/api/badges/spritsail/plex-media-server/status.svg)][drone] +[![Last Build](https://api.spritsail.io/badge/lastbuild/spritsail/plex-media-server:latest)][drone] The _smallest*_ Plex Media Server docker image, built on barebones [spritsail/busybox](https://hub.docker.com/spritsail/busybox/) with glibc and libraries from source. The container contains a bare minimum glibc dependency tree, with most of the useless crap removed, resulting in the smallest container possible whilst maintaining full functionality. From 13ef35e687fb0e886ecf05636ade4348e0a1328c Mon Sep 17 00:00:00 2001 From: Adam Dodman Date: Mon, 11 Jun 2018 17:10:36 +0100 Subject: [PATCH 04/10] Move to new notify step --- .drone.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index 443cf73..39d0a2b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -47,9 +47,6 @@ pipeline: - '%fileauto: .plex_tag' notify: - image: appleboy/drone-telegram + image: spritsail/notify when: { status: [ success, failure ] } - secrets: [ telegram_token, telegram_to ] - message: | - *{{repo.owner}}/{{repo.name}} [{{commit.branch}}]*: Build #{{build.number}}: *{{uppercase build.status}}* - {{build.link}} + secrets: [ webhook_url, notify_token ] From 316c9be5f4aa9b2fe3fe6349dd2d44135838fb36 Mon Sep 17 00:00:00 2001 From: Adam Dodman Date: Sun, 8 Jul 2018 14:29:12 +0100 Subject: [PATCH 05/10] Use libressl base image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e952445..6bb398d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM spritsail/busybox:libressl +FROM spritsail/libressl ARG PLEX_VER=latest ARG PLEX_URL From 916ae6f3b7e27036344b438534515209f18c0c19 Mon Sep 17 00:00:00 2001 From: Adam Dodman Date: Sun, 8 Jul 2018 14:30:52 +0100 Subject: [PATCH 06/10] Move to commit to upgrade system --- .drone.yml | 23 +++++++---------------- Dockerfile | 21 ++++++++------------- 2 files changed, 15 insertions(+), 29 deletions(-) diff --git a/.drone.yml b/.drone.yml index 39d0a2b..87866f3 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,30 +1,21 @@ pipeline: - identify: - image: docker - commands: - # Grab the current version, prevents race conditions - - apk add --no-cache openssl jq - - wget -qO- https://spritsail.io/plex/release.php | tee .plex_release - - jq -r '.["url-deb"]' .plex_release > .plex_url - - jq -r '.["version"]' .plex_release > .plex_version - - jq -r '.["csum-deb"]' .plex_release > .plex_checksum - - jq -r '.["version"]' .plex_release | cut -d- -f1 > .plex_tag - build: image: spritsail/docker-build volumes: [ '/var/run/docker.sock:/var/run/docker.sock' ] repo: plex-dev - build_args: - - 'PLEX_URL=%file: .plex_url' - - 'PLEX_VER=%file: .plex_version' - - 'PLEX_SHA=%file: .plex_checksum' + + tag: + image: docker + volumes: [ '/var/run/docker.sock:/var/run/docker.sock' ] + commands: + - docker inspect -f '{{ index .Config.Labels "io.spritsail.version.plex" }}' plex-dev | cut -d- -f1 > .plex_tag test: image: docker volumes: [ '/var/run/docker.sock:/var/run/docker.sock' ] commands: - apk add --no-cache curl xmlstarlet grep - - export CUR_VERSION="$(cat .plex_version)" + - export CUR_VERSION="$(cat .plex_tag)" - CON_NAME=$(docker run --rm -d plex-dev) - timeout -t 15 docker logs $$CON_NAME & - sleep 10 # Wait for plex to start! diff --git a/Dockerfile b/Dockerfile index 6bb398d..8363202 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,7 @@ FROM spritsail/libressl -ARG PLEX_VER=latest -ARG PLEX_URL -ARG PLEX_SHA +ARG PLEX_VER=1.13.2.5154-fd05be322 +ARG PLEX_SHA=81ff7f8d80ac46ca663a54e09667ad47a2ccb1cd ARG LIBSTDCPP_VER=6.3.0-18+deb9u1 ARG LIBGCC1_VER=6.3.0-18+deb9u1 @@ -10,8 +9,11 @@ LABEL maintainer="Spritsail " \ org.label-schema.vendor="Spritsail" \ org.label-schema.name="Plex Media Server" \ org.label-schema.url="https://www.plex.tv/downloads/" \ - org.label-schema.description="Tiny Docker image for Plex Media Server, built on spritsail/busybox" \ - org.label-schema.version=$PLEX_VER + org.label-schema.description="Tiny Docker image for Plex Media Server, built on busybox" \ + org.label-schema.version=${PLEX_VER} \ + io.spritsail.version.plex=${PLEX_VER} \ + io.spritsail.version.libstdcpp=${LIBSTDCPP_VER} \ + io.spritsail.version.libgcc1=${LIBGCC1_VER} ENV SUID=900 SGID=900 ADD start_pms /usr/sbin/start_pms @@ -26,16 +28,9 @@ RUN chmod +x /usr/sbin/start_pms \ # We only need the lib files, everything else is debian junk. && mv $PWD/usr/lib/x86_64-linux-gnu/* /lib \ && mv $PWD/lib/x86_64-linux-gnu/* /lib \ - \ - && if [ "$PLEX_VER" == "latest" -o -z "$PLEX_URL" ]; then \ - export PLEX_VER="$(wget -qO- https://spritsail.io/plex/release.php?raw=version)"; \ - export PLEX_URL="$(wget -qO- https://spritsail.io/plex/release.php?raw=url-deb)"; \ - export PLEX_SHA="$(wget -qO- https://spritsail.io/plex/release.php?raw=csum-deb)"; \ - fi \ && echo "$PLEX_SHA plexmediaserver.deb" > sumfile \ - && wget -O plexmediaserver.deb "$PLEX_URL" \ + && wget -O plexmediaserver.deb https://downloads.plex.tv/plex-media-server/${PLEX_VER}/plexmediaserver_${PLEX_VER}_amd64.deb \ && sha1sum -c sumfile \ - \ && dpkg-deb -x plexmediaserver.deb . \ && mv usr/lib/plexmediaserver /usr/lib \ && find $PWD -mindepth 1 -delete From 8a4ed82279f42c504fe8b5519218dfe01d5cf5e5 Mon Sep 17 00:00:00 2001 From: Adam Dodman Date: Sun, 8 Jul 2018 15:04:02 +0100 Subject: [PATCH 07/10] Move to mutli-stage build --- Dockerfile | 61 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8363202..48c02e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,45 @@ -FROM spritsail/libressl - ARG PLEX_VER=1.13.2.5154-fd05be322 ARG PLEX_SHA=81ff7f8d80ac46ca663a54e09667ad47a2ccb1cd ARG LIBSTDCPP_VER=6.3.0-18+deb9u1 ARG LIBGCC1_VER=6.3.0-18+deb9u1 +FROM spritsail/debian-builder:stretch-slim as builder + +ARG PLEX_VER +ARG PLEX_SHA +ARG LIBSTDCPP_VER +ARG LIBGCC1_VER + +WORKDIR /tmp + +RUN mkdir -p /output/usr/lib /output/{lib, sbin} + +RUN curl -fsSL -o libstdcpp.deb http://ftp.de.debian.org/debian/pool/main/g/gcc-${LIBSTDCPP_VER:0:1}/libstdc++6_${LIBSTDCPP_VER}_amd64.deb \ + && curl -fsSL -o libgcc1.deb http://ftp.de.debian.org/debian/pool/main/g/gcc-${LIBGCC1_VER:0:1}/libgcc1_${LIBGCC1_VER}_amd64.deb \ + && dpkg-deb -x libstdcpp.deb . \ + && dpkg-deb -x libgcc1.deb . \ + # We only need the lib files, everything else is debian junk. + && mv $PWD/usr/lib/x86_64-linux-gnu/* /output/usr/lib \ + # Maybe /lib + && mv $PWD/lib/x86_64-linux-gnu/* /output/usr/lib + +RUN curl -fsSL -o plexmediaserver.deb https://downloads.plex.tv/plex-media-server/${PLEX_VER}/plexmediaserver_${PLEX_VER}_amd64.deb \ + && echo "$PLEX_SHA plexmediaserver.deb" | sha1sum -c - \ + && dpkg-deb -x plexmediaserver.deb . \ + && mv usr/lib/plexmediaserver /output/usr/lib + + +ADD start_pms /output/usr/sbin/start_pms +RUN chmod +x /output/usr/sbin/start_pms + +#========================= + +FROM spritsail/libressl + +ARG PLEX_VER +ARG LIBSTDCPP_VER +ARG LIBGCC1_VER + LABEL maintainer="Spritsail " \ org.label-schema.vendor="Spritsail" \ org.label-schema.name="Plex Media Server" \ @@ -16,29 +51,15 @@ LABEL maintainer="Spritsail " \ io.spritsail.version.libgcc1=${LIBGCC1_VER} ENV SUID=900 SGID=900 -ADD start_pms /usr/sbin/start_pms -WORKDIR /tmp - -RUN chmod +x /usr/sbin/start_pms \ - && wget http://ftp.de.debian.org/debian/pool/main/g/gcc-${LIBSTDCPP_VER:0:1}/libstdc++6_${LIBSTDCPP_VER}_amd64.deb \ - && wget http://ftp.de.debian.org/debian/pool/main/g/gcc-${LIBGCC1_VER:0:1}/libgcc1_${LIBGCC1_VER}_amd64.deb \ - && dpkg-deb -x libstdc++6*.deb . \ - && dpkg-deb -x libgcc1*.deb . \ - # We only need the lib files, everything else is debian junk. - && mv $PWD/usr/lib/x86_64-linux-gnu/* /lib \ - && mv $PWD/lib/x86_64-linux-gnu/* /lib \ - && echo "$PLEX_SHA plexmediaserver.deb" > sumfile \ - && wget -O plexmediaserver.deb https://downloads.plex.tv/plex-media-server/${PLEX_VER}/plexmediaserver_${PLEX_VER}_amd64.deb \ - && sha1sum -c sumfile \ - && dpkg-deb -x plexmediaserver.deb . \ - && mv usr/lib/plexmediaserver /usr/lib \ - && find $PWD -mindepth 1 -delete +COPY --from=builder /output/ / HEALTHCHECK --interval=10s --timeout=5s \ CMD [ "wget", "-O", "/dev/null", "-T", "10", "-q", "localhost:32400/identity" ] WORKDIR /usr/lib/plexmediaserver +EXPOSE 32400 + ENTRYPOINT ["/sbin/tini", "--"] -CMD ["start_pms"] +CMD ["/usr/sbin/start_pms"] From b429c611f735498dd00f19d5b985a50579e19658 Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Tue, 17 Jul 2018 10:22:30 +0100 Subject: [PATCH 08/10] Update to 1.13.4.5251 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 48c02e0..a7b8f4b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ -ARG PLEX_VER=1.13.2.5154-fd05be322 -ARG PLEX_SHA=81ff7f8d80ac46ca663a54e09667ad47a2ccb1cd +ARG PLEX_VER=1.13.4.5251-2e6e8f841 +ARG PLEX_SHA=b107491bee603f2e7c87fc740df76c38cf0eba95 ARG LIBSTDCPP_VER=6.3.0-18+deb9u1 ARG LIBGCC1_VER=6.3.0-18+deb9u1 From 8f40a9ca25f9ec2dddd60d6f85afbf5f29e3d0e9 Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Fri, 20 Jul 2018 11:43:25 +0100 Subject: [PATCH 09/10] Update to version 1.13.4.5271 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index a7b8f4b..502093a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ -ARG PLEX_VER=1.13.4.5251-2e6e8f841 -ARG PLEX_SHA=b107491bee603f2e7c87fc740df76c38cf0eba95 +ARG PLEX_VER=1.13.4.5271-200287a06 +ARG PLEX_SHA=aa6c14a966188d486b99526144f9fd0012421e2b ARG LIBSTDCPP_VER=6.3.0-18+deb9u1 ARG LIBGCC1_VER=6.3.0-18+deb9u1 From 285d5d7a8af0b3351f401adeba8a000c09de9d9e Mon Sep 17 00:00:00 2001 From: Joe Groocock Date: Sun, 29 Jul 2018 11:45:17 +0100 Subject: [PATCH 10/10] Fix incorrect {lib, directory --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 502093a..868fe56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ ARG LIBGCC1_VER WORKDIR /tmp -RUN mkdir -p /output/usr/lib /output/{lib, sbin} +RUN mkdir -p /output/usr/lib RUN curl -fsSL -o libstdcpp.deb http://ftp.de.debian.org/debian/pool/main/g/gcc-${LIBSTDCPP_VER:0:1}/libstdc++6_${LIBSTDCPP_VER}_amd64.deb \ && curl -fsSL -o libgcc1.deb http://ftp.de.debian.org/debian/pool/main/g/gcc-${LIBGCC1_VER:0:1}/libgcc1_${LIBGCC1_VER}_amd64.deb \