<!-- .github/pull_request_template.md --> ## Description <!-- Provide a clear description of the changes in this PR --> ## 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 Helm-based deployment package that streamlines setup for the backend application and PostgreSQL database on Kubernetes. - Added orchestration support via Docker Compose for managing multi-container deployments. - Added new Kubernetes resources including Deployments, Services, and PersistentVolumeClaims for both the backend and PostgreSQL. - **Documentation** - Provided comprehensive infrastructure and deployment instructions for Kubernetes environments. - **Chores** - Established a standardized container build process for the Python application. - Introduced configuration settings for service ports, resource limits, and environment variables. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Daniel Molnar <soobrosa@gmail.com> Co-authored-by: Boris <boris@topoteretes.com>
59 lines
1.3 KiB
Docker
59 lines
1.3 KiB
Docker
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
|
|
|
|
# Set environment variable based on the build argument
|
|
ENV DEBUG=${DEBUG}
|
|
ENV PIP_NO_CACHE_DIR=true
|
|
ENV PATH="${PATH}:/root/.poetry/bin"
|
|
|
|
|
|
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
|
|
RUN poetry config virtualenvs.create false
|
|
|
|
# Install the dependencies
|
|
RUN poetry install --extras "${POETRY_EXTRAS}" --no-root --without dev
|
|
|
|
|
|
# Set the PYTHONPATH environment variable to include the /app directory
|
|
ENV PYTHONPATH=/app
|
|
|
|
COPY cognee/ /app/cognee
|
|
|
|
# Copy Alembic configuration
|
|
COPY alembic.ini /app/alembic.ini
|
|
COPY alembic/ /app/alembic
|
|
|
|
COPY entrypoint.sh /app/entrypoint.sh
|
|
RUN chmod +x /app/entrypoint.sh
|
|
|
|
RUN sed -i 's/\r$//' /app/entrypoint.sh
|
|
|
|
ENTRYPOINT ["/app/entrypoint.sh"]
|