# Multi-stage build for Oracle Instant Client + Python Flask FROM python:3.11.4-slim-buster as oracle_base # Installing Oracle instant client WORKDIR /opt/oracle RUN apt-get update && apt-get install -y libaio1 wget unzip curl \ && wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip \ && unzip instantclient-basiclite-linuxx64.zip \ && rm -f instantclient-basiclite-linuxx64.zip \ && cd /opt/oracle/instantclient* \ && rm -f *jdbc* *occi* *mysql* *README *jar uidrvci genezi adrci \ && echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle-instantclient.conf \ && ldconfig # Application layer FROM oracle_base WORKDIR /app # Copy TNS configuration for Oracle connection COPY tnsnames.ora /app/tnsnames.ora COPY requirements.txt /app/requirements.txt # Install Python dependencies RUN pip3 install -r requirements.txt # Copy application code COPY . . # Health check endpoint EXPOSE 5000 # Run Flask application CMD ["gunicorn", "--bind", "0.0.0.0:5000", "admin:app", "--reload", "--access-logfile", "-"]