FROM ubuntu:24.04 ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=1 \ DEBIAN_FRONTEND=noninteractive \ FLASK_HOST=0.0.0.0 \ FLASK_PORT=6050 \ FLASK_DEBUG=false \ APP_DATA_DIR=/app/data \ SOCKETIO_ASYNC_MODE=threading \ PATH="/opt/venv/bin:/opt/dell/srvadmin/sbin:${PATH}" ARG IDRAC_TOOLS_UBUNTU_VERSION=UBUNTU24 WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends \ bash \ ca-certificates \ libargtable2-0 \ libssl3t64 \ lsb-base \ openssl \ pciutils \ python3 \ python3-pip \ python3-venv \ && rm -rf /var/lib/apt/lists/* COPY iDRACTools /tmp/iDRACTools RUN apt-get update \ && apt-get install -y --no-install-recommends \ /tmp/iDRACTools/racadm/${IDRAC_TOOLS_UBUNTU_VERSION}/x86_64/srvadmin-hapi_*.deb \ /tmp/iDRACTools/racadm/${IDRAC_TOOLS_UBUNTU_VERSION}/x86_64/srvadmin-idracadm7_*.deb \ /tmp/iDRACTools/racadm/${IDRAC_TOOLS_UBUNTU_VERSION}/x86_64/srvadmin-idracadm8_*.deb \ /tmp/iDRACTools/ipmitool/${IDRAC_TOOLS_UBUNTU_VERSION}_x86_64/ipmitool_*.deb \ && rm -rf /tmp/iDRACTools /var/lib/apt/lists/* RUN python3 -m venv /opt/venv COPY requirements.txt . RUN pip install --upgrade pip \ && pip install -r requirements.txt COPY app.py config.py ./ COPY backend ./backend COPY migrations ./migrations RUN mkdir -p /app/data /app/backend/instance EXPOSE 6050 HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ CMD python -c "import os, socket; s = socket.create_connection(('127.0.0.1', int(os.getenv('FLASK_PORT', '6050'))), 5); s.close()" CMD ["python", "app.py"]