MemGPT
/
Dockerfile
52 строки · 1.4 Кб
1# The builder image, used to build the virtual environment
2FROM python:3.11-bookworm as builder
3ARG MEMGPT_ENVIRONMENT=PRODUCTION
4ENV MEMGPT_ENVIRONMENT=${MEMGPT_ENVIRONMENT}
5RUN pip install poetry==1.4.2
6
7ENV POETRY_NO_INTERACTION=1 \
8POETRY_VIRTUALENVS_IN_PROJECT=1 \
9POETRY_VIRTUALENVS_CREATE=1 \
10POETRY_CACHE_DIR=/tmp/poetry_cache
11
12WORKDIR /app
13
14COPY pyproject.toml poetry.lock ./
15RUN poetry lock --no-update
16RUN if [ "$MEMGPT_ENVIRONMENT" = "DEVELOPMENT" ] ; then \
17poetry install --no-root -E "postgres server dev autogen" ; \
18else \
19poetry install --without dev --no-root -E "postgres server" && \
20rm -rf $POETRY_CACHE_DIR ; \
21fi
22
23
24# The runtime image, used to just run the code provided its virtual environment
25FROM python:3.11-slim-bookworm as runtime
26ARG MEMGPT_ENVIRONMENT=PRODUCTION
27ENV MEMGPT_ENVIRONMENT=${MEMGPT_ENVIRONMENT}
28ENV VIRTUAL_ENV=/app/.venv \
29PATH="/app/.venv/bin:$PATH"
30
31COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV}
32
33COPY ./memgpt /memgpt
34
35EXPOSE 8083
36
37CMD ./memgpt/server/startup.sh
38
39# allow for in-container development and testing
40FROM builder as development
41ARG MEMGPT_ENVIRONMENT=PRODUCTION
42ENV MEMGPT_ENVIRONMENT=${MEMGPT_ENVIRONMENT}
43ENV VIRTUAL_ENV=/app/.venv \
44PATH="/app/.venv/bin:$PATH"
45ENV PYTHONPATH=/
46WORKDIR /
47COPY ./tests /tests
48COPY ./memgpt /memgpt
49COPY ./configs/server_config.yaml /root/.memgpt/config
50EXPOSE 8083
51
52CMD ./memgpt/server/startup.sh
53