From dc08ba41ca6999ca8e00d7ce5186e706e6bd817f Mon Sep 17 00:00:00 2001 From: Mirko Milovanovic Date: Sat, 15 Feb 2025 14:12:34 +0100 Subject: [PATCH] feat: add health check and heartbeat endpoint to Docker setup --- Dockerfile | 5 +++++ utils/PostHandler.py | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index c0833ae..f67e7eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,10 +4,15 @@ FROM python:3.13.1-slim-bookworm COPY requirements.txt /app/requirements.txt RUN pip install --no-cache-dir -r /app/requirements.txt +# Install curl +RUN apt-get update && apt-get install -y curl + # Copy the application COPY main.py /app COPY utils/ /app/utils WORKDIR /app +HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD curl -f http://localhost/heartbeat || exit 1 + # Run the application CMD ["python", "main.py"] \ No newline at end of file diff --git a/utils/PostHandler.py b/utils/PostHandler.py index a4e6694..49a1966 100644 --- a/utils/PostHandler.py +++ b/utils/PostHandler.py @@ -24,6 +24,11 @@ class Handler(BaseHTTPRequestHandler): self.wfile.write(b'404 Not Found') def do_GET(self): - self.send_response(404) - self.end_headers() - self.wfile.write(b'404 Not Found') \ No newline at end of file + if self.path == '/heartbeat': + self.send_response(200) + self.end_headers() + self.wfile.write(b'Heartbeat OK') + else: + self.send_response(404) + self.end_headers() + self.wfile.write(b'404 Not Found') \ No newline at end of file