Plex now provide a first-party musl Plex build that works without any
external dependencies whatsoever. It's built with LLVM with many
compiler and linker optimisations enabled:
https://forums.plex.tv/t/plex-media-server-forum-preview-faster-and-smaller-builds-with-new-toolchain/699575
Restructure build into multiple distinct Docker build stages to better
leverage caching and significantly improve build time on multicore
systems with BuildKit, particularly with LTO enabled.
Changes for this release include:
- Build `FROM spritsail/alpine` instead of `FROM debian` to ensure musl
compatibility with all compiled binaries. Use `FROM scratch` for the
resulting image. ld-musl is provided by Plex.
- Build busybox, su-exec and tini as they're no longer provided by the
base image.
- Build binaries/libraries with standard hardening flags, including the
popular -flto.
Signed-off-by: Joe Groocock <me@frebib.net>
This should cover 95% of cases where we'd want to bump Plex, but
autonomously. If the build fails or the tests fail we'll know about it
and can manually investigate.
Signed-off-by: Joe Groocock <me@frebib.net>
This allows running multiple builds of the same pipeline on one Docker
daemon, and also makes configuration simpler, as the argument is
implied if not provided.
Signed-off-by: Joe Groocock <me@frebib.net>