chore: Be explicit on extras to install in Docker (#598)

<!-- .github/pull_request_template.md -->

## 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


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## 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.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Daniel Molnar 2025-03-04 17:18:57 +01:00 committed by GitHub
parent 3e93dbe264
commit 7bac2303cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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