Python Selenium (Firefox/Geckodriver) funktioniert nicht im Docker Linux/Ubuntu-ContainerLinux

Linux verstehen
Guest
 Python Selenium (Firefox/Geckodriver) funktioniert nicht im Docker Linux/Ubuntu-Container

Post by Guest »

Ich versuche, einen Linux/Ubuntu/Debian-Docker-Container auszuführen, der Web-Scraper mit Python Selenium ausführt. Ich bin treiberunabhängig, aber ich versuche zunächst, einen Firefox/Geckodriver-Scrape auszuführen.Meine Docker-Datei sieht derzeit wie folgt aus:

Code: Select all

FROM ubuntu:jammy
WORKDIR /testdir
COPY requirements.txt requirements.txt

# install python, git, etc., all requirements.txt and selenium — THIS WORKS SO FAR
RUN : \
&& apt update \
&& DEBIAN_FRONTEND=noninteractive apt install \
-y \
--no-install-recommends \
python3-pip \
git \
ssh \
wget \
gnupg \
curl \
firefox \
&& pip3 install -r requirements.txt \
&& pip3 install selenium \
&& :

# install geckodriver — THIS WORKS SO FAR (RETRIEVES LATEST VERSION)
RUN : \
&& GECKODRIVER_VERSION=`curl -sL -I "https://github.com/mozilla/geckodriver/releases/latest" | grep -i "location:" | awk '{print $2}' | grep -o "v[0-9]\+.[0-9]\+.[0-9]\+"` \
&& wget https://github.com/mozilla/geckodriver/releases/download/$GECKODRIVER_VERSION/geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz \
&& tar -zxf geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz -C /usr/local/bin \
&& chmod +x /usr/local/bin/geckodriver \
&& rm geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz \

# install firefox — THIS FAILS
&& FIREFOX_SETUP=firefox-setup.tar.bz2 \
&& apt-get purge firefox \
&& wget -O $FIREFOX_SETUP "https://download.mozilla.org/?product=firefox-latest&os=linux64" \
&& tar xjf $FIREFOX_SETUP -C /opt/ \
&& ln -s /opt/firefox/firefox /usr/bin/firefox \
&& rm $FIREFOX_SETUP \
&& :

Die letzten Zeilen der Fehlerausgabe beim Ausführen dieser Docker-Datei lauten wie folgt:

Code: Select all

[+] Running 0/1nt to continue? [Y/n] Abort.
⠋ Service scrape-dev  Building                                                                                       4.9s
failed to solve: process "/bin/sh -c :     && GECKODRIVER_VERSION=`curl -sL -I \"https://github.com/mozilla/geckodriver/releases/latest\" | grep -i \"location:\" | awk '{print $2}' | grep -o \"v[0-9]\\+.[0-9]\\+.[0-9]\\+\"`     && wget https://github.com/mozilla/geckodriver/releases/download/$GECKODRIVER_VERSION/geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz     && tar -zxf geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz -C /usr/local/bin     && chmod +x /usr/local/bin/geckodriver     && rm geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz     && FIREFOX_SETUP=firefox-setup.tar.bz2     && apt-get purge firefox     && wget -O $FIREFOX_SETUP \"https://download.mozilla.org/?product=firefox-latest&os=linux64\"     && tar xjf $FIREFOX_SETUP -C /opt/     && ln -s /opt/firefox/firefox /usr/bin/firefox     && rm $FIREFOX_SETUP     && :" did not complete successfully: exit code: 1
Ich führe diese Docker-Datei aus einer docker-compose.yaml-Datei aus, die wie folgt lautet:

Code: Select all

# Version: "3.9"

services:

scrape-dev:

build:
context: .
dockerfile: pipeline/dockerfiles/Dockerfile

container_name: scrape-dev

image: scrape-dev

# Volumes below bind local paths to container paths.
# Note: individual SSH directory paths must be specified in individual .env files.
volumes:
- ./:/rtci
# - ${_SSH_PATH}:/root/.ssh
- "~/.gitconfig:/etc/gitconfig"

command: tail -F anything

profiles:
- scrape-dev
Ich führe es mit dem folgenden Befehl vom Terminal aus:

Code: Select all

> docker compose up scrape-dev -d --build
Gibt es außer dem Exit-Code eine andere Möglichkeit, den Fehler hier zu erkennen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post