# Use an official Python runtime as a parent image FROM python:3.9-slim # Set the working directory in the container WORKDIR /app # Copy the current directory contents into the container at /app COPY . /app # Install any needed packages specified in requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Make port 8000 available to the world outside this container EXPOSE 8000 # Create a non-root user and switch to it RUN adduser --disabled-password --gecos '' appuser USER appuser # Run main_app.py when the container launches CMD ["uvicorn", "main_app:app", "--host", "0.0.0.0", "--port", "8000"]