Move to mutli-stage build

This commit is contained in:
Adam Dodman 2018-07-08 15:04:02 +01:00
parent 916ae6f3b7
commit 8a4ed82279
Signed by: AdamAnt
GPG Key ID: 7826B108895B86AA

View File

@ -1,10 +1,45 @@
FROM spritsail/libressl
ARG PLEX_VER=1.13.2.5154-fd05be322 ARG PLEX_VER=1.13.2.5154-fd05be322
ARG PLEX_SHA=81ff7f8d80ac46ca663a54e09667ad47a2ccb1cd ARG PLEX_SHA=81ff7f8d80ac46ca663a54e09667ad47a2ccb1cd
ARG LIBSTDCPP_VER=6.3.0-18+deb9u1 ARG LIBSTDCPP_VER=6.3.0-18+deb9u1
ARG LIBGCC1_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 <plex@spritsail.io>" \ LABEL maintainer="Spritsail <plex@spritsail.io>" \
org.label-schema.vendor="Spritsail" \ org.label-schema.vendor="Spritsail" \
org.label-schema.name="Plex Media Server" \ org.label-schema.name="Plex Media Server" \
@ -16,29 +51,15 @@ LABEL maintainer="Spritsail <plex@spritsail.io>" \
io.spritsail.version.libgcc1=${LIBGCC1_VER} io.spritsail.version.libgcc1=${LIBGCC1_VER}
ENV SUID=900 SGID=900 ENV SUID=900 SGID=900
ADD start_pms /usr/sbin/start_pms
WORKDIR /tmp COPY --from=builder /output/ /
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
HEALTHCHECK --interval=10s --timeout=5s \ HEALTHCHECK --interval=10s --timeout=5s \
CMD [ "wget", "-O", "/dev/null", "-T", "10", "-q", "localhost:32400/identity" ] CMD [ "wget", "-O", "/dev/null", "-T", "10", "-q", "localhost:32400/identity" ]
WORKDIR /usr/lib/plexmediaserver WORKDIR /usr/lib/plexmediaserver
EXPOSE 32400
ENTRYPOINT ["/sbin/tini", "--"] ENTRYPOINT ["/sbin/tini", "--"]
CMD ["start_pms"] CMD ["/usr/sbin/start_pms"]