# D:\GNPL-Private\TimeCraft\backend\Dockerfile

# Use a slim, official Python image to reduce overall image size
FROM python:3.10-slim-buster

# Set the working directory inside the container
WORKDIR /app

# Copy the requirements file into the container
COPY requirements.txt .

# Install dependencies without caching to keep the image lightweight
RUN pip install --no-cache-dir -r requirements.txt

# Copy the application source code into the container
COPY ./app /app/app
COPY main.py /app/main.py

# Expose the port Uvicorn will use to serve FastAPI
EXPOSE 8000

# Define the container startup command to run the FastAPI app via Uvicorn
# - main:app -> refers to 'app' inside main.py
# - 0.0.0.0 -> binds to all interfaces so it's accessible outside container
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
