From 65e7a0706c97e70085b55ede1d9bd7b121b08cf0 Mon Sep 17 00:00:00 2001 From: Floke Date: Wed, 16 Jul 2025 12:22:10 +0000 Subject: [PATCH] Dockerfile aktualisiert --- Dockerfile | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index b0128722..c36ffd7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,7 @@ -# 1. Basis-Image: Ein schlankes Debian-basiertes Python 3.8 +# 1. Basis-Image FROM python:3.8-slim -# 2. System-Abhängigkeiten installieren -# Installiert alle notwendigen Bibliotheken für Chrome und nützliche Tools wie wget. -# Die Option --no-install-recommends hält das Image klein. -# rm -rf /var/lib/apt/lists/* räumt den apt-Cache auf, um Speicherplatz zu sparen. +# 2. System-Abhängigkeiten installieren (für Chrome etc.) RUN apt-get update && apt-get install -y \ wget \ unzip \ @@ -28,37 +25,30 @@ RUN apt-get update && apt-get install -y \ rm -rf /var/lib/apt/lists/* # 3. Google Chrome Stable installieren -# Fügt das offizielle Google-Repository hinzu und installiert die stabile Chrome-Version. 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 --no-install-recommends && \ rm -rf /var/lib/apt/lists/* -# 4. Passenden Chromedriver installieren -# Dieser Block ermittelt dynamisch die Version des gerade installierten Chrome -# und lädt exakt die dazu passende Chromedriver-Version herunter. -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 +# 4. Passenden Chromedriver installieren (ROBUSTE, NEUE METHODE) +# Dieser Block funktioniert mit den aktuellen Google-Download-Pfaden ("Chrome for Testing"). +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 # 5. App-Verzeichnis einrichten -# Setzt das Standard-Arbeitsverzeichnis im Container auf /app. WORKDIR /app # 6. Anwendungsdateien kopieren -# Kopiert ALLE Dateien aus dem aktuellen Verzeichnis (wo das Dockerfile liegt) -# in das /app Verzeichnis im Container. Dies ist die entscheidende Zeile für deine flache Dateistruktur. COPY . . # 7. Python-Abhängigkeiten installieren -# Liest die requirements.txt und installiert die Pakete mit pip. RUN pip3 install --no-cache-dir -r requirements.txt # 8. Standard-Startbefehl festlegen -# Dieser Befehl wird ausgeführt, wenn der Container gestartet wird. -# Er startet dein Haupt-Skript mit Python 3. CMD ["python3", "scrape_fotograf.py"] \ No newline at end of file