невозможно запустить селен Chrome-драйвер на Google-Cloud-Run - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть док-контейнер, на котором выполняется рабочий скрипт драйвера Селена Chrome, однако при развертывании того же образа в Google Cloud Run возникает следующая ошибка:

webdriver.Chrome('/home/vmagent/app/chromedriver', chrome_options=self.options) File "/env/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__ desired_capabilities=desired_capabilities) File "/env/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "/env/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/env/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/env/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist

Здесьэто процесс, который я использовал для проверки того, что код работает локально при запуске образа докера.

docker run -it <image_id> /bin/bash

root@e991d8ec09a7:/home/vmagent/app# python


>>> from scaper import Scrape
>>> import asyncio
>>> asyncio.run(Scrape().start())
Scrape has complete -- Entries: 268
>>>

Мне интересно, возможно ли вообще запустить chromedriver в Cloud Run и какие ограничения могут вызывать сбой chromedriver,Я запустил этот код в App Engine, но я надеялся перенести все на Cloud Run.

Вот код, который я использую для запуска веб-драйвера selenium.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--headless')
options.add_argument('--disable-dev-shm-usage')
browser = webdriver.Chrome('/home/vmagent/app/chromedriver', options=options)

Здесь вы можете видеть, что моя версия Chrome поддерживается chromedriver

root@2e53a4a78121:/home/vmagent/app# google-chrome --version
Google Chrome 76.0.3809.87
root@2e53a4a78121:/home/vmagent/app# ./chromedriver --version
ChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864})

selenium==3.141.0

Есть какие-либо идеи о том, почему на моем экземпляре Cloud Run возникают проблемы с запуском веб-драйвера selenium?

...