Docker - Как настроить Chrome с помощью chromedriver или Firefox с помощью Geckodriver, создающего приложение Python с библиотекой Arsenic

Приложение Python3, которое использует библиотеку Arsenic для асинхронного удаления веб-страниц. Требуется браузер с драйвером. Протестировано на Windows pycharm, все отлично работает, потому что у меня установлен Chrome. Теперь мне нужно создать свое приложение на сервере Amazon Ubuntu 20.04, используя docker-compose , я пробовал много разных способов, но все еще не могу заставить его работать ... Вот мой докер и часть кода Python:

My Dockerfile:

FROM python:latest

WORKDIR /src
COPY requirements.txt /src
RUN pip install -r requirements.txt
COPY . /src

My docker-compose:

version: '3.1'

services:

  tgbot:
    container_name: bot
    build:
      context: .
    command: python app.py
    restart: always
    environment:
      WEBAPP_PORT: 3001
    env_file:
      - ".env"
    # bot start after load db
    ports:
      - 8443:3001
    networks:
      - botnet
    volumes:
      - ./:/src

networks:
      botnet:
        driver: bridge

requirements.txt include arsenic ~ = 20.9

Код Python с мышьяком, который работает на моем ПК с Windows (i установлен хром, + файл chromedriver в папке приложения):

from arsenic import get_session, keys, browsers, services
async def arsenic_scraper(url):
    service = services.Chromedriver() # here is driver, if empty - it should find from PATH, or path to driver
    browser = browsers.Chrome()
    async with get_session(service, browser) as session:
        await session.get(url)

FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'chromedriver'

0
задан 11 December 2020 в 15:25

1 ответ

Вы не установили chrome и chromedriver в свой образ докера, поэтому ваше приложение не может их найти. Поскольку официальный образ докера Python использует Debian, вы можете попробовать установить хром в образ докера с помощью

RUN apt-get install -y google-chrome-stable

и загрузить совместимую версию chromedriver, вероятно, с wget. Проверьте документацию chromedriver, какую версию следует использовать: https://chromedriver.chromium.org/

Затем убедитесь, что ваше приложение ищет в каталоге, где бы вы ни загружали chromedriver.

0
ответ дан 13 December 2020 в 07:24

Другие вопросы по тегам:

Похожие вопросы: