2017-12-23 17 views
0

私の目的は、ドッキング用のコンテナからPythonで駆動されるセレンでウェブを擦ることです。python3、chromedriver、chrome&seleniumのドッカー画像

私は周りを見回して、次のインストールのすべてにドッキングウィンドウの画像を見つけていませんでした:

  • のpython3
  • chromedriver
  • クロム
  • セレン

は誰ですこれらのすべてがインストールされ、一緒に働いている私をドッカーのイメージにリンクすることができますか?

おそらく自分の建物は、私が思うほど難しいものではありませんが、これまでのところ私に言及しています。

すべてのアドバイスをいただければ幸いです。

答えて

1

お試しhttps://github.com/SeleniumHQ/docker-selenium

これは、Pythonがインストールされている:

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

命令はあなたが

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

編集でそれを起動示す:セレンのpythonを介して実行できるようにするには

あなたがする必要が表示されますパッケージをインストールします。このDockerfile作成します。そして、あなたは、プレーンpythonドッキングウィンドウの画像に比べ

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

利点とそれを実行することができ

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 

することは、selenium/standalone-chromeから来ているので、あなたがchromedriver自体をインストールする必要がないということです。セレンはバージョンが含まれて

+0

ありがとうHarald - 「Selenium import webdriverから」ImportError:「selenium」という名前のモジュールがないため、この画像は困惑しています - これは私が扱っているものが私の不慣れなものだと確信していますが、このPythonパッケージがインストールされることを期待しています。ドッカーファイルでこのインストールを処理する必要がありますか? – goose

+0

それは私にもちょっと困惑します。私は、pythonがそのイメージに、副作用としてではなく、主なポイントとしてインストールされていると推測しています。例えば、Javaのバインディングをインストールすることができます。私はPythonパッケージをインストールするための指示で私の答えを更新しました。 –

+0

それは動作します! Haraldありがとう、私はこれを長い間解読しようとしてきました。私は今すぐ "selenium.common.exceptions.WebDriverExceptionを取得します。メッセージ: 'chromedriver'実行ファイルがPATHにある必要があります。それを実行しようとすると、私は前にこの1つを解決したと思う。乾杯! :) – goose

0

私は最近、このイメージを更新しました:

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

それは(ピップパッケージとして)chromedriver、クロム、セレンをベースイメージとしてのpython3を使用してインストールを構築します。私は画像サイズが小さいので、自分自身のためにアルプスベースのpython3バージョンを使用しました。

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

あなたがあなた自身のイメージを構築し、またはこれのDockerfilesからの参照を取るためにrequirements.txtファイルによって一緒に他のパッケージとセレンをインストールピップ可能性があるので画像は、あなたのケースに合うかどうかを確認してください。


あなたはセレンから離れてより多くのパッケージをインストールピップしたい場合は、この例のように独自のイメージを構築することができが:

まず、作業ディレクトリに、あなたはrequirements.txtは、パッケージのバージョンを保存するあなたを持っていることインストールしたい:

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

は、このような同じディレクトリにDockerfileを作成します。

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

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

そして、画像構築:セレンはPythonベースイメージにピップパッケージとしてインストールされているように、これは、セレン公式のものとは異なり

docker build -t yourimage . 

を。それは個人(私自身)によってホストされているため、保守を停止するリスクが高くなる可能性があります。

関連する問題