From 863916cfdeff54e1f04798302a6f582fe610a99d Mon Sep 17 00:00:00 2001 From: godog <godog@autistici.org> Date: Sat, 9 Oct 2021 16:55:38 +0200 Subject: [PATCH] Move to S6 for process supervision --- Dockerfile | 2 +- conf/chaperone.d/feedbackloop.conf | 16 ---------------- conf/services.d/expire/run | 10 ++++++++++ conf/services.d/feedbackloop/finish | 3 +++ conf/services.d/feedbackloop/run | 2 ++ conf/services.d/ingest/run | 10 ++++++++++ 6 files changed, 26 insertions(+), 17 deletions(-) delete mode 100644 conf/chaperone.d/feedbackloop.conf create mode 100755 conf/services.d/expire/run create mode 100755 conf/services.d/feedbackloop/finish create mode 100755 conf/services.d/feedbackloop/run create mode 100755 conf/services.d/ingest/run diff --git a/Dockerfile b/Dockerfile index 2aa8c0d..e60ea58 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.git.autistici.org/ai3/docker/chaperone-base:master +FROM registry.git.autistici.org/ai3/docker/s6-base:master RUN apt-get -q update && \ env DEBIAN_FRONTEND=noninteractive apt-get -qy install --no-install-recommends \ diff --git a/conf/chaperone.d/feedbackloop.conf b/conf/chaperone.d/feedbackloop.conf deleted file mode 100644 index 6629386..0000000 --- a/conf/chaperone.d/feedbackloop.conf +++ /dev/null @@ -1,16 +0,0 @@ -feedbackloop.service: { - command: "/bin/sh -c '/usr/local/bin/feedbackloop server --port=${PORT:-4099} --addr=${ADDR:-0.0.0.0}'", - exit_kills: true, -} - -ingest.service: { - type: cron, - interval: "44 * * * *", - command: "/usr/local/bin/feedbackloop ingest", -} - -expire.service: { - type: cron, - interval: "39 5 * * *", - command: "/usr/local/bin/feedbackloop expire --days=30", -} diff --git a/conf/services.d/expire/run b/conf/services.d/expire/run new file mode 100755 index 0000000..a19b4d5 --- /dev/null +++ b/conf/services.d/expire/run @@ -0,0 +1,10 @@ +#!/bin/sh + +period=${EXPIRE_PERIOD_SECS:-86400} +offset=$(shuf -i 0-${period} -n 1) + +sleep $offset +while true; do + /usr/local/bin/feedbackloop expire --days=30 + sleep $period +done diff --git a/conf/services.d/feedbackloop/finish b/conf/services.d/feedbackloop/finish new file mode 100755 index 0000000..b6531b3 --- /dev/null +++ b/conf/services.d/feedbackloop/finish @@ -0,0 +1,3 @@ +#!/usr/bin/execlineb -S0 + +s6-svscanctl -t /var/run/s6/services diff --git a/conf/services.d/feedbackloop/run b/conf/services.d/feedbackloop/run new file mode 100755 index 0000000..0b9de1c --- /dev/null +++ b/conf/services.d/feedbackloop/run @@ -0,0 +1,2 @@ +#!/bin/sh +exec /usr/local/bin/feedbackloop server --port=${PORT:-4099} --addr=${ADDR:-0.0.0.0} diff --git a/conf/services.d/ingest/run b/conf/services.d/ingest/run new file mode 100755 index 0000000..8b945cf --- /dev/null +++ b/conf/services.d/ingest/run @@ -0,0 +1,10 @@ +#!/bin/sh + +period=${INGEST_PERIOD_SECS:-3600} +offset=$(shuf -i 0-${period} -n 1) + +sleep $offset +while true; do + /usr/local/bin/feedbackloop ingest + sleep $period +done -- GitLab