From 7bac2303ccf877cf00f66601269e62fb6ac585b9 Mon Sep 17 00:00:00 2001 From: Daniel Molnar Date: Tue, 4 Mar 2025 17:18:57 +0100 Subject: [PATCH] chore: Be explicit on extras to install in Docker (#598) ## Description Be explicit on extras to install in Docker. ## DCO Affirmation I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin ## Summary by CodeRabbit - **New Features** - Introduced a configurable option to install only selected dependency extras, allowing for a more tailored build experience. - **Chores** - Improved clarity in the build instructions regarding environment configuration. --- Dockerfile | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 50f2d0b08..d3c2afccd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,20 @@ FROM python:3.11-slim +# Define Poetry extras to install +ARG POETRY_EXTRAS="\ +# Storage & Databases \ +filesystem postgres weaviate qdrant neo4j falkordb milvus \ +# Notebooks & Interactive Environments \ +notebook \ +# LLM & AI Frameworks \ +langchain llama-index gemini huggingface ollama mistral groq \ +# Evaluation & Monitoring \ +deepeval evals posthog \ +# Graph Processing & Code Analysis \ +codegraph graphiti \ +# Document Processing \ +docs" + # Set build argument ARG DEBUG @@ -14,19 +29,16 @@ RUN apt-get install -y \ gcc \ libpq-dev - WORKDIR /app COPY pyproject.toml poetry.lock /app/ - RUN pip install poetry -# Don't create virtualenv since docker is already isolated +# Don't create virtualenv since Docker is already isolated RUN poetry config virtualenvs.create false -# Install the dependencies -RUN poetry install --all-extras --no-root --without dev - +# Install the dependencies using the defined extras +RUN poetry install --extras "${POETRY_EXTRAS}" --no-root --without dev # Set the PYTHONPATH environment variable to include the /app directory ENV PYTHONPATH=/app