FROM python:3.13-slim AS builder
 
RUN mkdir /www
 
WORKDIR /www

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1 

# RUN apt-get update && apt-get install -y --no-install-recommends \
# 	libpq-dev \
# 	gcc \
# 	g++ \
# 	libffi-dev \
# 	libssl-dev \
# 	libxml2-dev \
# 	libxslt1-dev \
# 	zlib1g-dev \
# 	libjpeg-dev \
# 	libfreetype6-dev && \
# 	rm -rf /var/lib/apt/lists/* && \
# 	apt-get clean && \
# 	apt-get autoclean
 
RUN pip install --upgrade pip 
 
COPY requirements.txt  /www/
RUN pip install --no-cache-dir -r requirements.txt

COPY requirements-prod.txt  /www/
RUN pip install --no-cache-dir -r requirements-prod.txt
 
# Stage 2: Production stage
FROM python:3.13-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
	libpq-dev \
	libssl-dev \
	gettext && \
	apt-get clean && \
	apt-get autoclean
 
RUN useradd -m -r wwwuser && \
   mkdir /www && \
   chown -R wwwuser /www
 
# Copy the Python dependencies from the builder stage
COPY --from=builder /usr/local/lib/python3.13/site-packages/ /usr/local/lib/python3.13/site-packages/
COPY --from=builder /usr/local/bin/ /usr/local/bin/
 
# Set the working directory
WORKDIR /www
 
# Copy application code
COPY --chown=wwwuser:wwwuser . .

RUN chmod +x /www/entrypoint.sh && \
	chmod +x /www/manage.py

RUN mkdir -p /static && \
	mkdir -p /media && \
	chown -R wwwuser:wwwuser /static && \
	chown -R wwwuser:wwwuser /media
 
# Set environment variables to optimize Python
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1 
 
# Switch to non-root user
USER wwwuser
 
# Expose the application port
EXPOSE 8000 

# Run Django’s development server
CMD ["/www/entrypoint.sh"]