sgmp/Dockerfile

55 lines
1.6 KiB
Docker
Raw Normal View History

2026-03-09 18:46:01 +00:00
FROM python:3.9-slim-bookworm
WORKDIR /app
# 1. Dependências de sistema (Oracle exige libaio1)
# Adicionei 'libaio1' explicitamente pois é runtime dependency
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libaio1 \
libaio-dev \
curl \
unzip \
gcc \
g++ \
unixodbc-dev && \
rm -rf /var/lib/apt/lists/*
# 2. Oracle Instant Client
# Usando versão 21.13 (Link atualizado e funcional)
RUN mkdir -p /opt/oracle && \
cd /opt/oracle && \
curl -f -L -o instantclient.zip \
https://download.oracle.com/otn_software/linux/instantclient/2113000/instantclient-basic-linux.x64-21.13.0.0.0dbru.zip && \
unzip instantclient.zip && \
rm instantclient.zip && \
# O zip extrai para a pasta instantclient_21_13, ajustamos a config:
echo "/opt/oracle/instantclient_21_13" > /etc/ld.so.conf.d/oracle-instantclient.conf && \
ldconfig
# 3. Variáveis de Ambiente
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_21_13:$LD_LIBRARY_PATH
ENV ORACLE_LIB_DIR=/opt/oracle/instantclient_21_13
# 4. Instalação de pacotes Python
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt && \
pip install --no-cache-dir gunicorn
# 5. Copia o código
COPY . .
# 6. Tornar o entrypoint executável
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 8000
# Entrypoint que executa migrações e collectstatic antes de iniciar
ENTRYPOINT ["/entrypoint.sh"]
# Comando padrão
CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "3", "--timeout", "120"]