# docker/app/Dockerfile
FROM python:3.12-alpine

# Dependências do sistema (Alpine)
# - libpq e headers para Postgres
# - build-base para eventuais compilações (evite em prod; aqui facilita dev)
RUN apk add --no-cache \
    bash \
    curl \
    libpq \
    postgresql-client \
    tzdata && \
    apk add --no-cache --virtual .build-deps \
    build-base \
    musl-dev \
    postgresql-dev

# Diretório de trabalho
WORKDIR /code

# Evita __pycache__, output imediato
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

# Copie seus requirements (sem expor seu código)
COPY linkshortner/requirements.txt /tmp/requirements.txt

# Instale dependências Python (ex.: Django, DRF, psycopg2-binary, gunicorn etc.)
RUN pip install --no-cache-dir -r /tmp/requirements.txt && \
    apk del .build-deps

# Copie o entrypoint
COPY docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

# Copie seu projeto
COPY linkshortner/ /code/

# Exponha a porta interna do Django
EXPOSE 8000

ENTRYPOINT ["/entrypoint.sh"]
