当前位置: 首页 > 知识库问答 >
问题:

在docker-comush中运行python硒

范麒
2023-03-14

我试图在docker compose中运行python selenium。我有以下文件:

docker撰写。yml:

version: '3'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      - chrome
    ports:
      - '8443:8443'

  chrome:
    image: selenium/node-chrome:3.14.0-gallium
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - hub
    environment:
      HUB_HOST: hub

  hub:
    image: selenium/hub:3.14.0-gallium
    ports:
      - "4444:4444"

Dockerfile:

FROM    python:latest
COPY    test.py /code/test.py
WORKDIR /code
RUN     pip install --upgrade pip
RUN     pip install pytest
RUN     pip install pytest-asyncio
RUN     pip install selenium

测验py:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(
        command_executor='http://hub:4444/wd/hub',
        desired_capabilities=DesiredCapabilities.CHROME,
        )

print(driver)

我跑:

docker-compose build
docker-compose run python test.py

我在测试中发现了一个连接被拒绝的错误。在尝试创建webdriver时使用py。

'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ffb3b34d550>: Failed to establish a new connection: [Errno 111] Connection refused')'

查看日志,hub和chrome驱动程序似乎已启动并运行,chrome驱动程序已连接到hub。我可以从应用程序ping hub和chrome容器。有什么想法吗?

共有2个答案

杨晓博
2023-03-14

我有一个非常相似的设置,我能看到的唯一区别是你没有在chrome实例下给出HUB_PORTarg:

environment:
    HUB_HOST: hub
    HUB_PORT: 4444

我用来设置的例子如下:SeleniumHQ/docker selenium

张成济
2023-03-14

以下是一个工作版本:在测试之前,还要确保等待hub准备就绪链接准备就绪:https://github.com/SeleniumHQ/docker-selenium#waiting-为电网做好准备

version: "3.6"
services:
  selenium-hub:
    restart: always
    image: selenium/hub:3.14.0
    container_name: selenium-hub
    ports:
      - "4444:4444"

 chrome:
    restart: always
    image: selenium/node-chrome-debug:3.14.0
    ports:
      - "5900-5999:5900"
    depends_on:
      - selenium-hub
    environment:
      HUB_HOST: selenium-hub
      HUB_PORT_4444_TCP_ADDR: selenium-hub
      HUB_PORT_4444_TCP_PORT: 4444
      DBUS_SESSION_BUS_ADDRESS: "/dev/null"
    links:
      - selenium-hub:hub
 类似资料:
  • 我有一个安装了python和java的docker映像,现在我想将这两个进程作为docker的子进程运行。 我查看了这篇文章,它解释了如何在安装了docker和python的情况下准备图像。它并没有解释如何让它们都运行。如何使用python和Java运行Docker? 我检查了如何在dockerhttps://runnable.com/docker/rails/run-multiple-proce

  • 问题内容: 我想以分离模式在docker容器中运行python cron作业。我的设置如下: 我的python脚本是test.py 我的cron文件是my-crontab 而我的Dockerfile是 这种方法潜在的问题是什么?还有其他方法,它们的优缺点是什么? 问题答案: 我在尝试使cron作业在docker容器中运行时遇到的几个问题是: Docker容器中的时间不是UTC的本地时间; dock

  • 这种方法的潜在问题是什么?是否还有其他方法,它们的利弊是什么?

  • 使用docker通过docker compose将springboot连接到postgres。在postgres上使用5432端口可以正常工作,如果我尝试其他端口,它就会失败 工作代码 Spring docker compose **拒绝连接代码** Spring docker compose 错误: spring boot rest服务器| org。postgresql。util。PSQLExc

  • 问题内容: 好的,我几乎用尽了所有线程和文章,但是仍然无法使我的apache网络服务器在Centos Docker Container上以独立模式运行。 这是我的简化Dockerfile 我的starservice脚本只有 我可以构建良好,但是似乎无法在守护程序/独立模式下运行容器。我怎么做? 我正在使用它以独立模式运行容器 我必须登录到容器并启动服务以使Web服务器运行。 问题答案: 这是经典的

  • 我正在使用python SDK包从python运行docker。下面是我试图使用python包运行的docker命令: