# ========================= # Stage 1 – Build # ========================= FROM python:3.13-alpine AS builder WORKDIR /app # Instalacja bibliotek do kompilacji + zależności runtime RUN apk add --no-cache \ tesseract-ocr \ tesseract-ocr-data-pol \ poppler-utils \ libjpeg-turbo \ zlib \ libpng \ libwebp \ libffi \ libmagic \ && apk add --no-cache --virtual .build-deps \ build-base \ jpeg-dev \ zlib-dev \ libpng-dev \ libwebp-dev \ libffi-dev # Kopiujemy plik wymagań COPY requirements.txt . # Instalujemy zależności Pythona do folderu tymczasowego RUN pip install --no-cache-dir --prefix=/install -r requirements.txt # ========================= # Stage 2 – Final image # ========================= FROM python:3.13-alpine WORKDIR /app # Instalacja tylko bibliotek runtime (bez dev) RUN apk add --no-cache \ tesseract-ocr \ tesseract-ocr-data-pol \ poppler-utils \ libjpeg-turbo \ zlib \ libpng \ libwebp \ libffi \ libmagic # Kopiujemy zbudowane biblioteki z buildera COPY --from=builder /install /usr/local # Kopiujemy kod aplikacji COPY . . # Ustawiamy entrypoint COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh # Otwieramy port aplikacji EXPOSE 8000 ENTRYPOINT ["/entrypoint.sh"]