1- FROM --platform=linux/amd64 python:3.13-bookworm AS build
1+ FROM python:3.13-bookworm AS build
22
3- ARG dev=0
43ENV POETRY_VIRTUALENVS_PATH=/app/services/admin-backend/.venv
54ENV VIRTUAL_ENV="${POETRY_VIRTUALENVS_PATH}"
65ENV POETRY_VERSION=2.1.3
76
87RUN DEBIAN_FRONTEND=noninteractive apt-get update \
9- && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential --no-install-recommends make && \
10- python3 -m venv "${POETRY_VIRTUALENVS_PATH}" \
11- && $POETRY_VIRTUALENVS_PATH/bin/pip install "poetry==${POETRY_VERSION}"
8+ && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential --no-install-recommends make \
9+ && python3 -m venv "${POETRY_VIRTUALENVS_PATH}" \
10+ && ${ POETRY_VIRTUALENVS_PATH} /bin/pip install "poetry==${POETRY_VERSION}"
1211ENV PATH="${POETRY_VIRTUALENVS_PATH}/bin:$PATH"
1312
14- COPY libs/admin-api-lib/pyproject.toml libs/admin-api-lib/poetry.lock /app/libs/admin-api-lib/
15- COPY libs/rag-core-lib/pyproject.toml libs/rag-core-lib/poetry.lock /app/libs/rag-core-lib/
16-
1713WORKDIR /app/services/admin-backend
1814COPY services/admin-backend/pyproject.toml services/admin-backend/poetry.lock ./
1915
20- RUN mkdir log && chmod 700 log
21- RUN touch /app/services/admin-backend/log/logfile.log && chmod 600 /app/services/admin-backend/log/logfile.log
16+ RUN mkdir -p log && chmod 700 log \
17+ && touch /app/services/admin-backend/log/logfile.log && chmod 600 /app/services/admin-backend/log/logfile.log
2218
23- RUN poetry config virtualenvs.create false && \
24- cd /app/services/admin-backend && \
25- if [ "$dev" = "1" ]; then \
26- poetry install --no-interaction --no-ansi --no-root --with dev && \
27- cd /app/libs/rag-core-lib && poetry install --no-interaction --no-ansi --no-root --with dev && \
28- cd /app/libs/admin-api-lib && poetry install --no-interaction --no-ansi --no-root --with dev; \
29- else \
30- poetry install --no-interaction --no-ansi --no-root && \
31- cd /app/libs/rag-core-lib && poetry install --no-interaction --no-ansi --no-root && \
32- cd /app/libs/admin-api-lib && poetry install --no-interaction --no-ansi --no-root; \
33- fi
19+ RUN poetry config virtualenvs.create false \
20+ && cd /app/services/admin-backend \
21+ && poetry install --no-interaction --no-ansi --no-root --with prod
3422
35- FROM --platform=linux/amd64 python:3.13-bookworm
36- ARG dev=0
23+ FROM python:3.13-bookworm
3724
3825WORKDIR /app/services/admin-backend
3926
@@ -46,23 +33,14 @@ COPY --from=build /usr/bin/make /usr/bin/make
4633COPY --from=build /usr/local/lib/ /usr/local/lib/
4734
4835# cleanup
49- RUN apt-get clean autoclean
50- RUN apt-get autoremove --yes
51-
52- RUN if [ "$dev" = "0" ]; then \
53- while read -r shell; do rm -f "$shell" ; done < /etc/shells; \
54- rm -rf /var/lib/{apt,dpkg,cache,log}/; \
55- fi
56-
36+ RUN apt-get clean autoclean && apt-get autoremove --yes \
37+ && while read -r shell; do rm -f "$shell" ; done < /etc/shells || true \
38+ && rm -rf /var/lib/{apt,dpkg,cache,log}/ || true
5739
5840ENV VIRTUAL_ENV="${POETRY_VIRTUALENVS_PATH}"
5941ENV PATH="${POETRY_VIRTUALENVS_PATH}/bin:${PATH}"
60- # Ensure libs are importable at runtime without installing them as packages
61- ENV PYTHONPATH="/app/services/admin-backend/src:/app/libs/admin-api-lib/src:/app/libs/rag-core-lib/src"
6242
6343USER nonroot
6444
6545COPY --chown=nonroot:nonroot services/admin-backend .
6646COPY --from=build --chown=nonroot:nonroot /app/services/admin-backend/log /app/services/admin-backend/log
67- COPY --chown=nonroot:nonroot libs/admin-api-lib /app/libs/admin-api-lib
68- COPY --chown=nonroot:nonroot libs/rag-core-lib /app/libs/rag-core-lib
0 commit comments