From fa7dcb6c9e2b659a8c7091c33ec3ed6d6f104eb5 Mon Sep 17 00:00:00 2001 From: Floke Date: Wed, 16 Jul 2025 12:06:12 +0000 Subject: [PATCH] Dockerfile aktualisiert --- Dockerfile | 71 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/Dockerfile b/Dockerfile index c350408c..bcdbda14 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,43 +1,54 @@ +# Basis-Image FROM python:3.8-slim +# Arbeitsverzeichnis setzen +WORKDIR /app + +# Systemabhängigkeiten für Google Chrome installieren RUN apt-get update && apt-get install -y \ wget \ unzip \ gnupg \ ca-certificates \ - fonts-liberation \ - libasound2 \ - libatk-bridge2.0-0 \ - libatk1.0-0 \ - libcups2 \ - libdbus-1-3 \ - libgdk-pixbuf2.0-0 \ - libnspr4 \ + # Chrome-Bibliotheken libnss3 \ - libx11-xcb1 \ - libxcomposite1 \ - libxdamage1 \ - libxrandr2 \ - xdg-utils \ - --no-install-recommends + libxss1 \ + libatk1.0-0 \ + libatk-bridge2.0-0 \ + libcups2 \ + libdrm2 \ + libdbus-1-3 \ + libgbm1 \ + libgdk-pixbuf2.0-0 \ + libgtk-3-0 \ + libatspi2.0-0 \ + --no-install-recommends && \ + rm -rf /var/lib/apt/lists/* -# Google Chrome installieren -RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - && \ - echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list && \ - apt-get update && \ - apt-get install -y google-chrome-stable +# Google Chrome Stable installieren +RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ + && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ + && apt-get update \ + && apt-get install -y google-chrome-stable \ + --no-install-recommends \ + && rm -rf /var/lib/apt/lists/* # Passenden Chromedriver installieren -RUN CHROME_VERSION=$(google-chrome --version | awk '{print $3}') && \ - CHROMEDRIVER_VERSION=$(wget -qO- https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION%.*}) && \ - wget -O /tmp/chromedriver.zip https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip && \ - unzip /tmp/chromedriver.zip -d /usr/local/bin/ && \ - chmod +x /usr/local/bin/chromedriver && \ - rm /tmp/chromedriver.zip +# Diese Methode ist robust und findet die passende Version dynamisch +RUN CHROME_VERSION=$(google-chrome --version | cut -f 3 -d ' ' | cut -d '.' -f 1-3) \ + && DRIVER_VERSION=$(wget -qO- "https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build.json" | grep -A1 "\"${CHROME_VERSION}\"" | grep "version" | cut -d '"' -f 4) \ + && wget -q "https://storage.googleapis.com/chrome-for-testing-public/${DRIVER_VERSION}/linux64/chromedriver-linux64.zip" -O /tmp/chromedriver.zip \ + && unzip /tmp/chromedriver.zip -d /usr/local/bin/ \ + && mv /usr/local/bin/chromedriver-linux64/chromedriver /usr/local/bin/ \ + && rm -rf /tmp/chromedriver.zip /usr/local/bin/chromedriver-linux64 \ + && chmod +x /usr/local/bin/chromedriver -WORKDIR /app -COPY requirements.txt . -RUN pip3 install --no-cache-dir -r requirements.txt -COPY . . +# Python-Abhängigkeiten installieren +COPY app/requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt -CMD ["python3", "test_selenium.py"] +# Den App-Code in den Container kopieren +COPY app/ . + +# Standard-Befehl zum Ausführen des Skripts +CMD ["python3", "scrape_fotograf.py"] \ No newline at end of file