move to alpine

This commit is contained in:
Mateusz Gruszczyński
2025-08-04 22:24:18 +02:00
parent 8337be6469
commit a5948e3e7e
3 changed files with 87 additions and 29 deletions

View File

@@ -1,35 +1,66 @@
# Używamy lekkiego obrazu Pythona
FROM python:3.13-slim
# =========================
# Stage 1 Build
# =========================
FROM python:3.13-alpine AS builder
# 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 \
# Instalacja bibliotek do kompilacji + zależności runtime
RUN apk add --no-cache \
tesseract-ocr \
tesseract-ocr-pol \
libglib2.0-0 \
libsm6 \
libxrender1 \
libxext6 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
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 wymagania
COPY requirements.txt requirements.txt
# Kopiujemy plik wymagań
COPY requirements.txt .
# Instalujemy zależności
RUN pip install --no-cache-dir -r requirements.txt
# Instalujemy zależności Pythona do folderu tymczasowego
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
# Kopiujemy resztę aplikacji
# =========================
# 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 . .
# Kopiujemy entrypoint i ustawiamy uprawnienia
# Ustawiamy entrypoint
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Otwieramy port
# Otwieramy port aplikacji
EXPOSE 8000
# Ustawiamy entrypoint
ENTRYPOINT ["/entrypoint.sh"]

36
Dockerfile_Debian Normal file
View File

@@ -0,0 +1,36 @@
# 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"]

View File

@@ -1,9 +0,0 @@
{
"version": 2,
"builds": [
{ "src": "app.py", "use": "@vercel/python" }
],
"routes": [
{ "src": "/(.*)", "dest": "api/app.py" }
]
}