huggy / Dockerfile
adowu's picture
Update Dockerfile
7b2816b verified
raw
history blame
1.64 kB
# Wybieramy oficjalny obraz Python jako bazowy
FROM python:3.11-slim AS base
# Ustawiamy katalog roboczy na /app
WORKDIR /app
# Instalujemy zależności systemowe dla Playwright
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
unzip \
libx11-xcb1 \
libxcomposite1 \
libxcursor1 \
libxdamage1 \
libxi6 \
libxtst6 \
libnss3 \
libcups2 \
libxss1 \
libxrandr2 \
libasound2 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcairo2 \
libgdk-pixbuf2.0-0 \
libgtk-3-0 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libx11-6 \
&& rm -rf /var/lib/apt/lists/*
# Kopiujemy pliki aplikacji do kontenera
COPY . /app/
# Instalujemy zależności z requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Instalujemy przeglądarki Playwright (chromium)
ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright
RUN mkdir -p $PLAYWRIGHT_BROWSERS_PATH && playwright install chromium --with-deps
# Tworzymy użytkownika (bez roota)
RUN useradd -m -u 1000 user
# Tworzymy katalogi na dane
RUN mkdir /data
RUN chown -R 1000:1000 /app /data
# Kopiujemy plik entrypoint.sh do katalogu aplikacji
COPY entrypoint.sh /app/entrypoint.sh
# Nadajemy uprawnienia do entrypoint.sh przed przełączeniem użytkownika na "user"
RUN chmod +x /app/entrypoint.sh
# Przełączamy na użytkownika "user"
USER user
# Tworzymy zmienne środowiskowe
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
# Zmieniamy uprawnienia przed uruchomieniem
RUN ls -l /app/entrypoint.sh
# Uruchomienie aplikacji Python (z pliku entrypoint.sh)
ENTRYPOINT ["/app/entrypoint.sh"]