From f300aebf8c0b579d62c6df2960fad1947b58b417 Mon Sep 17 00:00:00 2001 From: Ryan Jordan Date: Wed, 23 Aug 2023 20:42:05 -0500 Subject: feat(docker): add Docker and Docker Compose support --- Dockerfile | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Dockerfile (limited to 'Dockerfile') 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"] -- cgit v1.2.3