# 1. Basis-Image: Ein schlankes Debian-basiertes Python 3.8 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. 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 \ libnss3 \ libx11-xcb1 \ libxcomposite1 \ libxdamage1 \ libxrandr2 \ xdg-utils \ --no-install-recommends && \ 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 # 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"]