Alpine Linux with s6 overlay.
Tip
Want to be notified of new releases? Check out 🔔 Diun (Docker Image Update Notifier) project!
- Multi-platform alpine based and distribution images
- Artifacts provided on releases page
This repository provides two images. The first one is built on top of alpine so, you can use it as a base image for your own images:
# syntax=docker/dockerfile:1
FROM crazymax/alpine-s6
RUN apk add --no-cache nginx
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
CMD ["/usr/sbin/nginx"]Note
ENTRYPOINT ["/init"] is already defined in the base image so no need to add
this command.
The second one is a distribution image. This is a
multi-platform scratch image that only contains all the scripts and binaries
needed to run s6-overlay. This way you can use any base image and use the
COPY --link --from command
to copy the assets inside your image:
# syntax=docker/dockerfile:1
FROM ubuntu
COPY --link --from=crazymax/alpine-s6-dist / /
RUN apt-get update && apt-get install -y nginx
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
CMD ["/usr/sbin/nginx"]
ENTRYPOINT ["/init"]Warning
COPY --link is
not supported with BuildKit built directly into the Docker Engine. You can
use a Container builder
in this case.
| Registry | Image |
|---|---|
| Docker Hub | crazymax/alpine-s6 |
| GitHub Container Registry | ghcr.io/crazy-max/alpine-s6 |
$ docker buildx imagetools inspect crazymax/alpine-s6 --format "{{json .Manifest}}" | \
jq -r '.manifests[] | select(.platform.os != null and .platform.os != "unknown") | .platform | "\(.os)/\(.architecture)\(if .variant then "/" + .variant else "" end)"'
linux/386
linux/amd64
linux/arm/v6
linux/arm/v7
linux/arm64
linux/ppc64le
linux/riscv64
linux/s390x
| Registry | Image |
|---|---|
| Docker Hub | crazymax/alpine-s6-dist |
| GitHub Container Registry | ghcr.io/crazy-max/alpine-s6-dist |
$ docker buildx imagetools inspect crazymax/alpine-s6-dist --format "{{json .Manifest}}" | \
jq -r '.manifests[] | select(.platform.os != null and .platform.os != "unknown") | .platform | "\(.os)/\(.architecture)\(if .variant then "/" + .variant else "" end)"'
linux/386
linux/amd64
linux/arm/v6
linux/arm/v7
linux/arm64
linux/ppc64le
linux/riscv64
linux/s390x
edge,edge-x.x.x.xlatest-edge,3.22-edgelatest,latest-x.x.x.x,3.22,3.22-x.x.x.x3.21-edge3.21,3.21-x.x.x.x3.20-edge3.20,3.20-x.x.x.x3.19-edge3.19,3.19-x.x.x.x3.18-edge3.18,3.18-x.x.x.x3.17-edge3.17,3.17-x.x.x.x
x.x.x.xhas to be replaced with one of the s6-overlay releases available (e.g.3.1.0.1).
git clone https://github.com/crazy-max/docker-alpine-s6.git
cd docker-alpine-s6
# Build image and output to docker (default)
docker buildx bake
# Build tarballs to ./dist
docker buildx bake artifact-all
# Build multi-platform image
docker buildx bake image-all
# Build multi-platform dist image
docker buildx bake image-dist-allWant to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. You can also support this project by becoming a sponsor on GitHub or by making a PayPal donation to ensure this journey continues indefinitely!
Thanks again for your support, it is much appreciated! 🙏
MIT. See LICENSE for more details.