2017-12-23 215 views
0

내 목표는 도커 컨테이너에서 파이썬으로 구동되는 셀렌으로 웹을 긁는 것입니다.python3, chromedriver, chrome & selenium을 사용하는 도커 이미지

I가 주위를 둘러 보았다 다음과 같은 설치 모두와 고정 표시기 이미지를 찾을 수 없습니다했습니다

  • python3
  • chromedriver
  • 크롬
  • 셀레늄

는 누구인가 이 모든 것을 설치하고 함께 사용하는 도커 이미지에 나를 연결할 수 있습니까?

아마도 내 자신 만의 건물은 생각만큼 어려울 수는 없지만 지금까지 나에게 암시되어 있습니다.

모든 조언을 부탁드립니다.

답변

1

시도 https://github.com/SeleniumHQ/docker-selenium.

는 그것은 파이썬 설치했습니다

$ docker run selenium/standalone-chrome python3 --version 
Python 3.5.2 

지침은 당신이 그것을 시작 표시

docker run -d -p 4444:4444 --shm-size=2g selenium/standalone-chrome 

편집 :

하는 셀레늄은 당신이 필요 나타납니다 파이썬을 통해 실행할 수 있도록하려면 패키지를 설치하십시오. 이 Dockerfile 만들기 :

FROM selenium/standalone-chrome 

USER root 
RUN wget https://bootstrap.pypa.io/get-pip.py 
RUN python3 get-pip.py 
RUN python3 -m pip install selenium 

그런 다음 일반 python 고정 표시기 이미지에 비해

docker build . -t selenium-chrome && \ 
    docker run -it selenium-chrome python3 

장점으로 실행할 수있는 것은 selenium/standalone-chrome에서 유래하기 때문에 당신이 chromedriver 자체를 설치할 필요가 없습니다 것입니다 . 셀레늄 버전을 포함하여

+0

감사합니다. Harald - "셀레늄 가져 오기 webdriver에서 가져 오기"가 "ImportError : No soulenium '모듈로 연결되기 때문에이 이미지가 나에게 퍼즐이 생깁니다. - 이것은 내가 다루고있는 것에 익숙하지 않은 것으로 확신하지만 이 python 패키지가 설치되기를 기대합니다. 도커 파일로이 설치를 처리해야합니까? – goose

+0

그건 나에게도 약간의 어려움이있다. 나는 파이썬이 그 이미지에 단지 부작용이면서 주된 것이 아니라는 것을 짐작하고있다. 예를 들어, 사용자는 Java 용 바인딩을 대신 설치하려고 할 수 있습니다. 필자는 파이썬 패키지를 설치하기위한 지침으로 나의 대답을 업데이트했다. –

+0

그것은 작동합니다! Harald 감사합니다. 저는 오랫동안 이것을 해독하려고 노력해 왔습니다. 이제 "selenium.common.exceptions.WebDriverException : 메시지 : 'chromedriver'실행 파일이 PATH에 있어야합니다." 그것을 실행하려고 할 때,하지만 내가 전에이 문제를 해결했다고 생각합니다. 건배! :) – goose

0

나는 최근에이 이미지를 업데이트했습니다

https://hub.docker.com/r/joyzoursky/python-chromedriver/

그것은 (픽처 인 픽처 패키지로) chromedriver, 크롬 및 셀레늄을 기본 이미지로 python3를 사용하여 설치 빌드 할 수 있습니다. 알파인 기반의 python3 버전을 이미지 크기가 더 작아서 사용했습니다. 이미지가 귀하의 경우에 맞는 경우에 당신이 당신의 자신의 이미지를 구축, 또는 이것의 Dockerfiles에서 참조를 가지고 가기 위하여 requirements.txt 파일에 의해 서로 다른 패키지와 셀레늄을 설치 핍 수 있기

$ cd [your working directory] 
$ docker run -it -v $(pwd):/usr/workspace joyzoursky/python-chromedriver:3.6-alpine3.7-selenium sh 
/# cd /usr/workspace 

은 참조하십시오.당신은 셀레늄에서 떨어져 이상의 패키지를 설치 핍하려면


,이 예로서 자신의 이미지를 만들 수 :

이 가

먼저, 작업 디렉토리에 패키지 버전을 저장하는 requirements.txt을 가질 수있다 설치하려는 :

FROM joyzoursky/python-chromedriver:3.6-alpine3.7 

RUN mkdir packages 
ADD requirements.txt packages 
RUN pip install -r packages/requirements.txt 
,536 :

selenium==3.8.0 
requests==2.18.4 
urllib3==1.22 
... (your list of packages) 

다음과 같이 같은 디렉토리에 Dockerfile를 만들

그런 다음 이미지를 구축 :

docker build -t yourimage . 

이 셀레늄은 파이썬 기본 이미지에 픽처 인 픽처 패키지로 설치되어있는 셀레늄 공식 하나 다릅니다. 그러나 그것은 개인에 의해 주최되기 때문에 유지 보수를 중단 할 위험이 더 높습니다.