vfedotovs / sslv_web_scraper

ss.lv web scraping app helps automate information scraping and filtering from classifieds and emails results and stores scraped data in database
GNU General Public License v3.0
5 stars 3 forks source link

FEAT: Task_scheduler Docker container missing health check #272

Open vfedotovs opened 5 months ago

vfedotovs commented 5 months ago

Proposal:

add to ts.py

from fastapi import FastAPI   << add

app = FastAPI()

@app.get("/health")
def health_check():
    return {"status": "healthy"}. << health check

Dockerfile modifications

# Use an official Python runtime as a parent image
FROM python:3.10-slim

# Set the working directory in the container
WORKDIR /usr/src/app

# Copy the current directory contents into the container at /usr/src/app
COPY . .

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 5000 available to the world outside this container
EXPOSE 5000

# Run app.py when the container launches
CMD ["python", "./app.py"]

# Define the health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
  CMD curl -f http://localhost:5000/health || exit 1
# Building container anr running container
docker build -t my-python-app .

# Running container
docker run -p 5000:5000 my-python-app

# Verify health state: 
docker ps