The simplest and fastest way to get S6 supervisor in your image
COPY --from=ghcr.io/n0rthernl1ghts/s6-rootfs:latest ["/", "/"]
or with fixed version:
COPY --from=ghcr.io/n0rthernl1ghts/s6-rootfs:3.1.2.1 ["/", "/"]
That's it!
Note: We're moving to ghcr.io. docker.io/nlss/s6-rootfs
will be kept up-to-date until May 2023, when is Docker sunsetting free teams.
It is highly recommended that you start using ghcr.io/n0rthernl1ghts/s6-rootfs
.
# ---------------------
# Build root filesystem
# ---------------------
FROM scratch AS rootfs
# Copy over base files
COPY ["./rootfs", "/"]
# Install S6
COPY --from=ghcr.io/n0rthernl1ghts/s6-rootfs:3.1.2.1 ["/", "/"]
# ---------------------
# Build image
# ---------------------
FROM alpine:latest
COPY --from=rootfs ["/", "/"]
RUN apk add --update --no-cache nano
# S6 configuration - not required
# See: https://github.com/just-containers/s6-overlay#customizing-s6-overlay-behaviour
ENV S6_KEEP_ENVS6_KEEP_ENV=1
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
ENV S6_CMD_RECEIVE_SIGNALS=1
# Important, this is required for S6 to work
ENTRYPOINT ["/init"]