2025-04-04 17:55:58 -03:00
|
|
|
FROM alpine:latest
|
2025-04-04 15:21:39 -03:00
|
|
|
|
|
|
|
|
# Instalar dependências do sistema
|
2025-04-04 17:55:58 -03:00
|
|
|
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 . .
|
2025-04-04 15:21:39 -03:00
|
|
|
|
2025-04-04 18:04:23 -03:00
|
|
|
# Criar e ativar ambiente virtual
|
|
|
|
|
RUN python -m venv /venv && \
|
|
|
|
|
. /venv/bin/activate && \
|
|
|
|
|
pip install --upgrade pip && \
|
|
|
|
|
pip install -r requirements.txt
|
2025-04-04 15:21:39 -03:00
|
|
|
|
2025-04-04 17:55:58 -03:00
|
|
|
# Expor a porta que o Flask usa
|
2025-04-04 15:21:39 -03:00
|
|
|
EXPOSE 5000
|
|
|
|
|
|
2025-04-04 18:04:23 -03:00
|
|
|
# Definir o ambiente virtual como padrão
|
|
|
|
|
ENV PATH="/venv/bin:$PATH"
|
2025-04-04 18:07:04 -03:00
|
|
|
ENV FLASK_APP=app.py
|
|
|
|
|
ENV FLASK_ENV=production
|
2025-04-04 18:04:23 -03:00
|
|
|
|
2025-07-01 13:42:56 -03:00
|
|
|
# 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
|
|
|
|
|
|
2025-04-04 15:21:39 -03:00
|
|
|
# Comando para rodar a aplicação
|
2025-07-01 13:42:56 -03:00
|
|
|
CMD ["/app/start.sh"]
|