# Use a minimal base image with Python 3.12 installed FROM python:3.12 # Set the working directory inside the container to /app WORKDIR /app # Copy all files from the current directory on the host to the container's /app directory COPY . . # Install Python dependencies listed in requirements.txt RUN pip3 install -r requirements.txt # Create a non-root user (uid 1000) — best practice for container security RUN useradd -m -u 1000 user USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH WORKDIR $HOME/app # Copy application files with correct ownership for the non-root user COPY --chown=user . $HOME/app EXPOSE 7860 # Run the Streamlit app on port 8501, accessible externally CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0", "--server.enableXsrfProtection=false"]