diff --git a/Dockerfile b/Dockerfile index 0067eee..09c852d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,66 +1,36 @@ -# ========================= -# Stage 1 – Build -# ========================= -FROM python:3.13-alpine AS builder +# Używamy lekkiego obrazu Pythona +FROM python:3.13-slim +# Ustawiamy katalog roboczy WORKDIR /app -# Instalacja bibliotek do kompilacji + zależności runtime -RUN apk add --no-cache \ +# Zależności systemowe do OCR, obrazów, tesseract i języka PL +RUN apt-get update && apt-get install -y --no-install-recommends \ tesseract-ocr \ - tesseract-ocr-data-pol \ + tesseract-ocr-pol \ + libglib2.0-0 \ + libsm6 \ + libxrender1 \ + libxext6 \ 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 + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* -# Kopiujemy plik wymagań -COPY requirements.txt . +# Kopiujemy wymagania +COPY requirements.txt requirements.txt -# Instalujemy zależności Pythona do folderu tymczasowego -RUN pip install --no-cache-dir --prefix=/install -r requirements.txt +# Instalujemy zależności +RUN pip install --no-cache-dir -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 +# Kopiujemy resztę aplikacji COPY . . -# Ustawiamy entrypoint +# Kopiujemy entrypoint i ustawiamy uprawnienia COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh -# Otwieramy port aplikacji +# Otwieramy port EXPOSE 8000 +# Ustawiamy entrypoint ENTRYPOINT ["/entrypoint.sh"] diff --git a/Dockerfile_Debian b/Dockerfile_Debian deleted file mode 100644 index 09c852d..0000000 --- a/Dockerfile_Debian +++ /dev/null @@ -1,36 +0,0 @@ -# Używamy lekkiego obrazu Pythona -FROM python:3.13-slim - -# Ustawiamy katalog roboczy -WORKDIR /app - -# Zależności systemowe do OCR, obrazów, tesseract i języka PL -RUN apt-get update && apt-get install -y --no-install-recommends \ - tesseract-ocr \ - tesseract-ocr-pol \ - libglib2.0-0 \ - libsm6 \ - libxrender1 \ - libxext6 \ - poppler-utils \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -# Kopiujemy wymagania -COPY requirements.txt requirements.txt - -# Instalujemy zależności -RUN pip install --no-cache-dir -r requirements.txt - -# Kopiujemy resztę aplikacji -COPY . . - -# Kopiujemy entrypoint i ustawiamy uprawnienia -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x /entrypoint.sh - -# Otwieramy port -EXPOSE 8000 - -# Ustawiamy entrypoint -ENTRYPOINT ["/entrypoint.sh"] diff --git a/Dockerfile_alpine b/Dockerfile_alpine new file mode 100644 index 0000000..0067eee --- /dev/null +++ b/Dockerfile_alpine @@ -0,0 +1,66 @@ +# ========================= +# 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"]