Добрый день,
Сделал сбоку для скраппера с помощью 2-контейнеров -
node (для puppeteer) и tor-socks-proxy
(Сборку пытался произвести с networks и без, результат один):
version: '3.7'
services:
node:
container_name: app_node
build: ./docker/containers/node
volumes:
- ./app:/var/www
- ./volumes/node/nginx/:/var/log/nginx/
ports:
- 3002:3000
working_dir: /var/www
restart: always
tty: true
networks:
- myapp
tor:
container_name: app_tor
image: peterdavehello/tor-socks-proxy:latest
ports:
- 9150:9150
restart: always
networks:
- myapp
networks:
myapp:
driver: bridge
Проблема с использованием тора прокси для puppeteer в контейнере
node:
Когда я использовал локальный тор прокси, я указывал адрес:
'--proxy-server=socks5://127.0.0.1:9050'
Изменил на:
'--proxy-server=socks5://tor:9050'
export const LAUNCH_PUPPETEER_OPTS = {
args: [
..
'--proxy-server=socks5://tor:9050'
]
};
При запуске puppeteer:
Error: net::ERR_PROXY_CONNECTION_FAILED at
https://sitename.ru
at navigate (/var/www/node_modules/puppeteer/lib/FrameManager.js:120:37)
at processTicksAndRejections (internal/process/task_queues.js:86:5)
-- ASYNC --
at Frame. (/var/www/node_modules/puppeteer/lib/helper.js:111:15)
at Page.goto (/var/www/node_modules/puppeteer/lib/Page.js:672:49)
at Page. (/var/www/node_modules/puppeteer/lib/helper.js:112:23)
at PuppeteerHandler._callee2$ (/var/www/helpers/puppeteer.js:69:19)
at tryCatch (/var/www/node_modules/regenerator-runtime/runtime.js:45:40)
at Generator.invoke [as _invoke] (/var/www/node_modules/regenerator-runtime/runtime.js:271:22)
at Generator.prototype.(anonymous function) [as next] (/var/www/node_modules/regenerator-runtime/runtime.js:97:21)
at asyncGeneratorStep (/var/www/helpers/puppeteer.js:12:103)
at _next (/var/www/helpers/puppeteer.js:14:194)
at processTicksAndRejections (internal/process/task_queues.js:86:5)
Локально отрабатывает следующая комманда:
curl --socks5-hostname 127.0.0.1:9150 https://ipinfo.tw/ip
62.102.148.68
Из под контейнера
tor тоже:
docker exec -i -t 5bdddac72709 curl --socks5-hostname 127.0.0.1:9150 https://ipinfo.tw/ip
89.144.12.17
Из под контейнера
node аналогично:
docker exec -it 03c2c7be89f8 curl --socks5-hostname tor:9150 https://ipinfo.tw/ip
166.70.207.2
Подскажите пожалуйста, в чем тут косяк - в порте или в хосте?
Пробовал также установить
tor в контейнер
node и сконфигурировать следующим образом:
'--proxy-server=socks5://127.0.0.1:9050'
Результат не поменялся.
Может помимо
curl нужно дополнительные утилиты заинсталлить в контейнер с
node?