Многоэтапные сборки увеличили мой образ Python Docker. Почему?Python

Программы на Python
Anonymous
Многоэтапные сборки увеличили мой образ Python Docker. Почему?

Сообщение Anonymous »

При использовании обычного Dockerfile одноэтапной сборки размер конечного образа составляет 216 МБ; но при использовании подхода многоэтапной сборки, показанного ниже, я получил окончательный образ размером 227 МБ. Почему это?
# This multi stage build Dockerfile actually makes the image larger! :(
FROM python:3.10.14-slim-bookworm AS base

LABEL authors="X"

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV ENVIRONMENT=production
ENV PYTHONPATH=/app

WORKDIR /app

FROM base AS build

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt && \
rm requirements.txt

FROM base AS final

# cleaning up unused files
RUN rm -rf /var/lib/apt/lists/*

COPY --from=build /usr/local/lib/python3.10/site-packages/ /usr/local/lib/python3.10/site-packages/

COPY ./src /app/src
# Expose port 8000 for FastAPI server
EXPOSE 8000

ENTRYPOINT ["python", "/app/src/main.py"]

Файл require.txt содержит только 4 пакета:
fastapi==0.111.0
loguru==0.7.2
aiohttp[speedups]==3.9.5
boto3==1.34.128


Подробнее здесь: https://stackoverflow.com/questions/787 ... larger-why

Вернуться в «Python»