From 98dd69539df7c034f96f096824b203a2ab30e507 Mon Sep 17 00:00:00 2001 From: Johan Bloemberg Date: Mon, 21 Oct 2024 16:35:59 +0200 Subject: [PATCH] Slow worker restart --- .../periodic/daily/restart_slow_worker_cron | 19 +++++++++++++++++++ docker/docker-compose.yml | 4 ++++ 2 files changed, 23 insertions(+) create mode 100755 docker/cron-docker/periodic/daily/restart_slow_worker_cron diff --git a/docker/cron-docker/periodic/daily/restart_slow_worker_cron b/docker/cron-docker/periodic/daily/restart_slow_worker_cron new file mode 100755 index 000000000..94d97773e --- /dev/null +++ b/docker/cron-docker/periodic/daily/restart_slow_worker_cron @@ -0,0 +1,19 @@ +#!/bin/sh +set -e + +cd /opt/Internet.nl + +SERVICE=worker-slow +REPLICAS=$WORKER_SLOW_REPLICAS +COMPOSE_CMD="docker compose --env-file=docker/defaults.env --env-file=docker/host.env --env-file=docker/local.env" + +OLD_CONTAINERS=$($COMPOSE_CMD ps --format "{{ .Name }}"|grep "$SERVICE") + +# bring up new containers, wait until healthy +$COMPOSE_CMD up --no-deps --wait --scale=$(($REPLICAS*2)) up "$SERVICE" + +# graceful shutdown and remove old containers +docker rm --force "$OLD_CONTAINERS" + +# restore replica number to original +$COMPOSE_CMD scale $SERVICE=$REPLICAS diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index c03d89763..11538bc48 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -728,9 +728,13 @@ services: # cron daemon with access to Docker socket but no networking cron-docker: image: ${DOCKER_IMAGE_UTIL:-${DOCKER_REGISTRY:-ghcr.io/internetstandards}/util:${RELEASE}} + build: + context: .. + dockerfile: docker/util.Dockerfile command: crond -f -d7 -c /etc/crontabs-docker environment: - AUTO_UPDATE_TO + - WORKER_SLOW_REPLICAS restart: unless-stopped logging: