MemGPT/Dockerfile
Matthew Zhou 4deaafdb49 chore: Various bug fixes (#1350)
Co-authored-by: Sarah Wooders <sarahwooders@gmail.com>
Co-authored-by: cthomas <caren@letta.com>
Co-authored-by: tarunkumark <tkksctwo@gmail.com>
Co-authored-by: Kevin Lin <klin5061@gmail.com>
Co-authored-by: Charles Packer <packercharles@gmail.com>
Co-authored-by: Miao <one.lemorage@gmail.com>
Co-authored-by: Krishnakumar R (KK) <65895020+kk-src@users.noreply.github.com>
Co-authored-by: Shubham Naik <shub@memgpt.ai>
Co-authored-by: Shubham Naik <shub@letta.com>
Co-authored-by: Will Sargent <will.sargent@gmail.com>
Co-authored-by: Shubham Naik <shubham.naik10@gmail.com>
Co-authored-by: mlong93 <35275280+mlong93@users.noreply.github.com>
Co-authored-by: Mindy Long <mindy@letta.com>
Co-authored-by: Stephan Fitzpatrick <stephan@knowsuchagency.com>
Co-authored-by: dboyliao <qmalliao@gmail.com>
Co-authored-by: Jyotirmaya Mahanta <jyotirmaya.mahanta@gmail.com>
Co-authored-by: Nicholas <102550462+ndisalvio3@users.noreply.github.com>
Co-authored-by: Tristan Morris <tristanbmorris@gmail.com>
Co-authored-by: Daniel Shin <88547237+kyuds@users.noreply.github.com>
Co-authored-by: Jindřich Šíma <67415662+JindrichSima@users.noreply.github.com>
Co-authored-by: Azin Asgarian <31479845+azinasg@users.noreply.github.com>
Co-authored-by: Connor Shorten <connorshorten300@gmail.com>
Co-authored-by: Lucas Mohallem Ferraz <ferraz.m.lucas@gmail.com>
Co-authored-by: kyuds <kyuds@everspin.co.kr>
2025-03-20 11:06:45 -07:00

83 lines
2.3 KiB
Docker

# Start with pgvector base for builder
FROM ankane/pgvector:v0.5.1 AS builder
# Install Python and required packages
RUN apt-get update && apt-get install -y \
python3 \
python3-venv \
python3-pip \
python3-full \
build-essential \
libpq-dev \
python3-dev \
&& rm -rf /var/lib/apt/lists/*
ARG LETTA_ENVIRONMENT=PRODUCTION
ENV LETTA_ENVIRONMENT=${LETTA_ENVIRONMENT} \
POETRY_NO_INTERACTION=1 \
POETRY_VIRTUALENVS_IN_PROJECT=1 \
POETRY_VIRTUALENVS_CREATE=1 \
POETRY_CACHE_DIR=/tmp/poetry_cache
WORKDIR /app
# Create and activate virtual environment
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
# Now install poetry in the virtual environment
RUN pip install --no-cache-dir poetry==1.8.2
# Copy dependency files first
COPY pyproject.toml poetry.lock ./
# Then copy the rest of the application code
COPY . .
RUN poetry lock --no-update && \
poetry install --all-extras && \
rm -rf $POETRY_CACHE_DIR
# Runtime stage
FROM ankane/pgvector:v0.5.1 AS runtime
# Install Python packages and OpenTelemetry Collector
RUN apt-get update && apt-get install -y \
python3 \
python3-venv \
curl \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /app \
# Install OpenTelemetry Collector
&& curl -L https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.96.0/otelcol-contrib_0.96.0_linux_amd64.tar.gz -o /tmp/otel-collector.tar.gz \
&& tar xzf /tmp/otel-collector.tar.gz -C /usr/local/bin \
&& rm /tmp/otel-collector.tar.gz \
&& mkdir -p /etc/otel
# Add OpenTelemetry Collector configs
COPY otel-collector-config-file.yaml /etc/otel/config-file.yaml
COPY otel-collector-config-clickhouse.yaml /etc/otel/config-clickhouse.yaml
ARG LETTA_ENVIRONMENT=PRODUCTION
ENV LETTA_ENVIRONMENT=${LETTA_ENVIRONMENT} \
VIRTUAL_ENV="/app/.venv" \
PATH="/app/.venv/bin:$PATH" \
POSTGRES_USER=letta \
POSTGRES_PASSWORD=letta \
POSTGRES_DB=letta \
COMPOSIO_DISABLE_VERSION_CHECK=true \
LETTA_OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317"
WORKDIR /app
# Copy virtual environment and app from builder
COPY --from=builder /app .
# Copy initialization SQL if it exists
COPY init.sql /docker-entrypoint-initdb.d/
EXPOSE 8283 5432 4317 4318
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["./letta/server/startup.sh"]