s6-overlay for multi-stage Docker builds
4.6K
Images with statically built s6-overlay and s6-add-contenv inside, for multiple architectures.
These can be used during multi-stage builds to install s6-overlay into an image.
It's easier than making sure any s6-fetching stages in multi-arch builds are
identical across different projects and relying on docker build caching the
layer.
## get s6 overlay
FROM "moonbuggy2000/s6-overlay:${S6_VERSION}-${S6_ARCH}" AS s6-overlay
## build image
FROM "${FROM_IMAGE}"
COPY --from=s6-overlay / /
# .. et cetera ..
Images are tagged in the form <s6 version>-<s6 arch>. Tags including
-prebuilt- use binaries from just-containers/s6-overlay, otherwise
the images contain binaries built from source.
Valid <s6-arch>: aarch64/arm64, amd64, arm, armhf, i486/x86, i686,
mips64le, ppc64le, riscv64, s390x
The ./build.sh script takes arguments in the form
<s6 version>(-<build type>)(-<s6 arch>)
A default build, with no arguments, will create images for all possible architectures containing the s6 overlay and s6 add-contenv files, ready to copy into another image in a multi-stage build.
<s6 version>Specify a version number matching "v?[0-9.]+" or latest. This will be
matched against tags in the s6 repo to automatically determine the
latest full version from a partial version number (i.e. specifying 2 will
build v2.2.0.3).
Defaults to latest if not specified.
<build type>prebuilt - an image containing the pre-built s6 overlay from
just-containers/s6-overlaytarballs - an image with the s6 overlay files in *.tar.xz archives. The
tarballs will also be copied into the builds/<s6 version> folder on the
host. s6-add-contenv will not be included with tarball images<s6 arch>Available architectures are generally the same as those in the image tags above. Refer to arch.yaml for more options (some of which may be excluded by build.conf, depending on the specific build).
All possible architectures will be built if no <s6 arch> is specified.
# latest version on all architectures
./build.sh latest
# specific version(s) on all architectures
./build.sh v3.1.1.2 2.2.0.3
# specific versions and architectures
./build.sh latest-amd64 v2.2.0.3-armhf
# latest version's tarballs on all architectures
./build.sh latest-tarballs
# whatever, really
./build.sh latest-amd64 latest-tarballs-amd64 2.2-armhf v3.0-tarballs 3.0.0
# everything (latest and tarballs for all arch)
./build.sh all
# check for newer source versions
./build.sh check
# build newer versions (latest, prebuilt and tarballs)
./build.sh update
These haven't been tested on all architectures. The -prebuilt- images are less
likely to have issues, but aren't available for as many architectures as we can
build for ourselves.
GitHub:
Docker Hub: https://hub.docker.com/r/moonbuggy2000/s6-overlay
Content type
Image
Digest
sha256:8573227d5…
Size
2.8 MB
Last updated
over 1 year ago
docker pull moonbuggy2000/s6-overlay:latest-prebuilt-s390x