# Use the official lightweight Python image. # https://hub.docker.com/_/python FROM python:3.9-slim # Ensure Python outputs everything immediately (useful for real-time logging in Docker). ENV PYTHONUNBUFFERED 1 # Set the working directory in the container. WORKDIR /app # Update the system packages and install system-level dependencies required for compilation. # gcc: Compiler required for some Python packages. # build-essential: Contains necessary tools and libraries for building software. RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ build-essential \ && rm -rf /var/lib/apt/lists/* # Copy the project's requirements file into the container. COPY requirements.txt /app/ # Upgrade pip for the latest features and install the project's Python dependencies. RUN pip install --upgrade pip && pip install -r requirements.txt # Copy the entire project into the container. # This may include all code, assets, and configuration files required to run the application. COPY . /app/ # Install additional requirements specific to the interference module/package. RUN pip install -r interference/requirements.txt # Expose port 1337 EXPOSE 1337 # Define the default command to run the app using Python's module mode. CMD ["python", "-m", "interference.app"]