summaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile33
1 files changed, 33 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..36ca12f1
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,33 @@
+# 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
+
+# Define the default command to run the app using Python's module mode.
+CMD ["python", "-m", "interference.app"]