FROM alpine:latest

# Instalar dependências do sistema
RUN apk update && \
    apk add --no-cache \
    python3 \
    py3-pip \
    make \
    git \
    gcc \
    python3-dev \
    musl-dev \
    linux-headers

# Criar link simbólico para python3
RUN ln -sf python3 /usr/bin/python

# Definir diretório de trabalho
WORKDIR /app

# Copiar arquivos do projeto
COPY . .

# Criar e ativar ambiente virtual
RUN python -m venv /venv && \
    . /venv/bin/activate && \
    pip install --upgrade pip && \
    pip install -r requirements.txt

# Expor a porta que o Flask usa
EXPOSE 5000

# Definir o ambiente virtual como padrão
ENV PATH="/venv/bin:$PATH"
ENV FLASK_APP=app.py
ENV FLASK_ENV=production

# Criar script de inicialização
RUN echo '#!/bin/sh' > /app/start.sh && \
    echo 'echo "Inicializando banco de dados..."' >> /app/start.sh && \
    echo 'python init_db.py' >> /app/start.sh && \
    echo 'echo "Banco de dados inicializado!"' >> /app/start.sh && \
    echo 'echo "Iniciando aplicação..."' >> /app/start.sh && \
    echo 'exec gunicorn --bind 0.0.0.0:5000 app:app' >> /app/start.sh && \
    chmod +x /app/start.sh

# Comando para rodar a aplicação
CMD ["/app/start.sh"] 
