mirror of
https://codeberg.org/privacy1st/nix-git
synced 2024-11-21 22:03:19 +01:00
monitor unhealthy containers
This commit is contained in:
parent
286a0d2225
commit
b2e0d29801
@ -144,6 +144,4 @@ in
|
|||||||
# Start after login.
|
# Start after login.
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Service which checks if all running docker containers are healthy. Also for yodaYoga.
|
|
||||||
}
|
}
|
||||||
|
@ -26,4 +26,40 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Monitor unhealthy Docker containers.
|
||||||
|
systemd.timers."docker-health" = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
partOf = [ "docker-health.service" ];
|
||||||
|
timerConfig = {
|
||||||
|
OnBootSec = "0m";
|
||||||
|
OnUnitInactiveSec = "3m";
|
||||||
|
|
||||||
|
AccuracySec = "15s";
|
||||||
|
RandomizedDelaySec = "15s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.services."docker-health" = {
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
PrivateTmp = true;
|
||||||
|
# `docker` requires root access.
|
||||||
|
User = "root";
|
||||||
|
Nice = 19;
|
||||||
|
IOSchedulingClass = "idle";
|
||||||
|
};
|
||||||
|
path = with pkgs; [
|
||||||
|
docker
|
||||||
|
];
|
||||||
|
# If there are no unhealthy Docker containers, the output of `docker ps -f health=unhealthy` is just one line:
|
||||||
|
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
|
# We filter this line with `grep -v`.
|
||||||
|
# As a result, grep returns exit code 1 if there are no unhealthy containers (as not a single line is printed).
|
||||||
|
# Thus, we prefix the whole command with `!`.
|
||||||
|
# Lastly, we redirect stdout to stderr with `1>&2` so that unhealthy containers are written to stderr.
|
||||||
|
script = ''
|
||||||
|
set -eu -o pipefail
|
||||||
|
! sudo docker ps -f health=unhealthy | grep -v 'CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES' 1>&2
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user