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.
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.
- unset - an image containing self-built s6 overlay
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 thebuilds/<s6 version>
folder on the host. s6-add-contenv will not be included with tarball images
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
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:
- https://github.com/moonbuggy/docker-s6-overlay
- https://github.com/moonbuggy/docker-s6-add-contenv
- https://github.com/moonbuggy/docker-base-images
Docker Hub: https://hub.docker.com/r/moonbuggy2000/s6-overlay