Skip to content

moonbuggy/docker-s6-overlay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

s6-overlay

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.

Usage

## 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 ..

Tags

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

Building

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>

  • unset - an image containing self-built s6 overlay
  • prebuilt - an image containing the pre-built s6 overlay from just-containers/s6-overlay
  • tarballs - 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.

Examples

# 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

Notes

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.

Links

GitHub:

Docker Hub: https://hub.docker.com/r/moonbuggy2000/s6-overlay

About

s6-overlay for multi-stage Docker builds

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors