繁体   English   中英

带有 python3、chromedriver、chrome 和 selenium 的 Docker 镜像

[英]Docker image with python3, chromedriver, chrome & selenium

我的目标是用来自docker容器的Python驱动的Selenium抓取网络。

我四处寻找并没有找到安装了以下所有内容的 docker 镜像:

是否有人能够将我链接到所有这些都安装并协同工作的docker 镜像

也许构建我自己的并不像我想象的那么困难,但到目前为止它已经暗示了我。

任何和所有建议表示赞赏。

试试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

编辑:

要允许 selenium 通过 python 运行,您似乎需要安装这些软件包。 创建这个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

然后你可以运行它

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

与普通python docker 映像相比的优势在于,您不需要安装 chromedriver 本身,因为它来自selenium/standalone-chrome

我喜欢 Harald 的解决方案。 但是,截至 2021 年,我的环境需要进行一些修改。

Docker version 20.10.5, build 55c4c88

我按如下方式更改了 Dockerfile。

FROM selenium/standalone-chrome

USER root
RUN apt-get update && apt-get install python3-distutils -y
RUN wget https://bootstrap.pypa.io/get-pip.py
RUN python3 get-pip.py
RUN python3 -m pip install selenium

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

它使用 python3 作为基础映像并安装 chromedriver、chrome 和 selenium(作为 pip 包)来构建。 我自己使用了基于 alpine 的 python3 版本,因为图像尺寸较小。

$ 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文件将 selenium 与其他软件包一起安装以构建您自己的图像,或者从 Dockerfiles 中获取参考。


如果你想通过 pip 安装除了 selenium 之外的更多包,你可以像这个例子一样构建你自己的镜像:

首先,在您的工作目录中,您可能有一个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

然后构建镜像:

docker build -t yourimage .

这与 selenium 官方不同,因为 selenium 作为 pip 包安装到 python 基础映像。 然而,它是由个人托管的,因此停止维护的风险可能更高。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM