summaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
authorTekky <98614666+xtekky@users.noreply.github.com>2023-09-11 13:35:01 +0200
committerGitHub <noreply@github.com>2023-09-11 13:35:01 +0200
commit3bde2c06f3581fa095317bad8ae40b15d55877cb (patch)
tree8c36f59a8c08b1ff35038d672fe0af390fa645d2 /Dockerfile
parent~ | Merge pull request #891 from Lin-jun-xiang/fix-TypeDict-error (diff)
parentMerge branch 'main' into feature/docker-setup (diff)
downloadgpt4free-3bde2c06f3581fa095317bad8ae40b15d55877cb.tar
gpt4free-3bde2c06f3581fa095317bad8ae40b15d55877cb.tar.gz
gpt4free-3bde2c06f3581fa095317bad8ae40b15d55877cb.tar.bz2
gpt4free-3bde2c06f3581fa095317bad8ae40b15d55877cb.tar.lz
gpt4free-3bde2c06f3581fa095317bad8ae40b15d55877cb.tar.xz
gpt4free-3bde2c06f3581fa095317bad8ae40b15d55877cb.tar.zst
gpt4free-3bde2c06f3581fa095317bad8ae40b15d55877cb.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"]