From bc5c44dd049bad3b007be48b3f8d90886d63c105 Mon Sep 17 00:00:00 2001 From: System administrator Date: Mon, 29 May 2017 13:26:10 +0200 Subject: Initial commit --- images/runit-edge/Dockerfile | 14 ++++++++++++++ images/runit-edge/runit/run | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 images/runit-edge/Dockerfile create mode 100644 images/runit-edge/runit/run (limited to 'images/runit-edge') diff --git a/images/runit-edge/Dockerfile b/images/runit-edge/Dockerfile new file mode 100644 index 0000000..d0c2040 --- /dev/null +++ b/images/runit-edge/Dockerfile @@ -0,0 +1,14 @@ +FROM alpine:edge + +RUN apk add --no-cache sudo shadow runit + +# runit +ADD runit/run /app/runit/run +ONBUILD ADD service /etc/service +# Make sure all service and log files are executable +ONBUILD RUN find -L /etc/service \( -name run -or -name finish -or -name down \) -exec chmod +x {} \; + +# If supplied as "ENTRYPOINT foo" it will be wrapped in "/bin/sh -c", +# but that will swallow signals and we rely on those +ONBUILD RUN chmod +x /app/runit/run +ONBUILD ENTRYPOINT ["/app/runit/run"] diff --git a/images/runit-edge/runit/run b/images/runit-edge/runit/run new file mode 100644 index 0000000..c3861c2 --- /dev/null +++ b/images/runit-edge/runit/run @@ -0,0 +1,17 @@ +#!/bin/sh + +echo "Found services:" +find /etc/service -mindepth 1 -maxdepth 1 + +/sbin/runsvdir /etc/service & +runsvdir_pid=$! +echo "Started runit as $runsvdir_pid" + +runit_stop() { + echo "Stopping runit" + # "If runsvdir receives HUP, it sends TERM to each runsv process" + kill -HUP $runsvdir_pid +} + +trap "runit_stop" SIGTERM +wait -- cgit v1.2.3