summaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
authorRyan Jordan <ryjordan@gmail.com>2023-08-24 03:42:05 +0200
committerRyan Jordan <ryjordan@gmail.com>2023-08-24 03:42:05 +0200
commitf300aebf8c0b579d62c6df2960fad1947b58b417 (patch)
treedb2b00f6bdc65d2b8b8dfe7986dd08357de936fe /Dockerfile
parent ~ | Merge pull request #829 (diff)
downloadgpt4free-f300aebf8c0b579d62c6df2960fad1947b58b417.tar
gpt4free-f300aebf8c0b579d62c6df2960fad1947b58b417.tar.gz
gpt4free-f300aebf8c0b579d62c6df2960fad1947b58b417.tar.bz2
gpt4free-f300aebf8c0b579d62c6df2960fad1947b58b417.tar.lz
gpt4free-f300aebf8c0b579d62c6df2960fad1947b58b417.tar.xz
gpt4free-f300aebf8c0b579d62c6df2960fad1947b58b417.tar.zst
gpt4free-f300aebf8c0b579d62c6df2960fad1947b58b417.zip
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"]