# 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