diff --git a/Dockerfile b/Dockerfile index 5b37227..3f77c79 100755 --- a/Dockerfile +++ b/Dockerfile @@ -30,11 +30,12 @@ COPY ./webapp ./webapp COPY ./twitchbot ./twitchbot COPY zabbix_agent2.conf /etc/zabbix/zabbix_agent2.conf COPY start.sh /start.sh +COPY healthcheck.py . RUN python3 -m venv /app/venv && \ /app/venv/bin/pip install --no-cache-dir -r requirements.txt && \ chmod +x /start.sh -HEALTHCHECK --interval=5m --timeout=1m --start-period=2m CMD /app/venv/bin/python /app/healthcheck.py --show-success --config-dir /app/config/ --hook-dir /app/config/healthcheck/ +HEALTHCHECK --interval=30s --timeout=10s --start-period=2m CMD /app/venv/bin/python /app/healthcheck.py CMD ["/start.sh"] diff --git a/healthcheck.py b/healthcheck.py new file mode 100755 index 0000000..5ffd15b --- /dev/null +++ b/healthcheck.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +import subprocess +import sys +import os + +def check_process(): + """Vérifie si le processus Python principal est en cours d'exécution""" + try: + # Vérifier si le processus run-web.py est actif + result = subprocess.run( + ["pgrep", "-f", "run-web.py"], + capture_output=True, + text=True + ) + return result.returncode == 0 + except Exception: + return False + +def main(): + if check_process(): + sys.exit(0) # Succès + else: + sys.exit(1) # Échec + +if __name__ == "__main__": + main() \ No newline at end of file