Настройка
Попытка запустить Chrome без монитора в качестве контейнера (Изображение: https://hub.docker.com/r/alpeware/chrome-headless-trunk) в моем docker-compose и подключение к нему из другого контейнера.
Проблема
Чтобы на самом деле подключиться к Chrome внутри контейнера, мне сначала нужно получить webSocketDebuggerUrl, который доступен по адресу http://0.0.0.0:9222/json/version Chrome-Headless.
Проблема в том, что мой запрос к этомупуть всегда терпит неудачу с
RequestError: Ошибка: подключите ECONNREFUSED 0.0.0.0:9222
и не можете получить webSocketDebuggerUrl для подключения к Chrome.
Некоторыебольше информации
Также, если я сам посещаю http://0.0.0.0:9222/json/version в своем браузере, копирую URL и жестко кодирую его в мой puppeteer.connect (), он работает ТОЛЬКО должным образом, если я заменяю адрес '0.0.0.0 'к моему (связанному) имени контейнера (указанному в docker-compose): http://chrome:9222/json/version
Если я пытаюсь запросить webSocketDebuggerUrl из / json / version, используя адрес имени контейнера (http://chrome:9222/json/version) я получаю ошибку
StatusCodeError: 500 - «Заголовок хоста указан и не является IP-адресом или локальным хостом.»
Мой код (абстракция)
const rp = require('request-promise')
const puppeteer = require('puppeteer-core')
let url = await rp({uri:'http://0.0.0.0:9222/json/version', json: true }).then(res => res.webSocketDebuggerUrl)
let browser = await puppeteer.connect({ browserWSEndpoint: url })