Как настроить прокси в контейнере Selenium Chrome? - PullRequest
0 голосов
/ 03 мая 2018

У меня есть файл docker-compose.yml с известными переменными среды для доступа к нашему корпоративному прокси:

---
version: '2.2'
# adapted from:
# https://github.com/SeleniumHQ/docker-selenium/wiki/Getting-Started-with-Docker-Compose
# docker-compose --force-recreate

services:
  chrome:
    privileged: True
    image: "selenium/standalone-chrome:3.11.0"
    ports:
      - "4444:4444"
    volumes:
      - /dev/shm:/dev/shm
    environment:
      - TZ="UT"
      - http_proxy=http://proxy.lan:8080
      - https_proxy=http://proxy.lan:8080
      - no_proxy=
      #- SE_OPTS=-Dhttp.proxyHost=proxy.lan -Dhttp.proxyPort=8080
    network_mode: host

Когда я запускаю wget в контейнере, прокси-сервер используется как положено.

    --2018-05-02 12:30:45--  http://google.com/
Resolving proxy.lan (proxy.lan)... 192.168.33.141
Connecting to proxy.lan (proxy.lan)|192.168.33.141|:8080... connected.
Proxy request sent, awaiting response... 301 Moved Permanently
Location: http://www.google.com/ [following]
--2018-05-02 12:30:45--  http://www.google.com/
Reusing existing connection to proxy.lan:8080.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/dev/null’

/dev/null                                              [ <=>                                                                                                          ]  10.81K  --.-KB/s    in 0s

2018-05-02 12:30:46 (310 MB/s) - ‘/dev/null’ saved [11073]

Однако, когда я пытаюсь запустить контейнер с SE_OPTS="-Dhttp.proxyHost=proxy.lan -Dhttp.proxyPort=8080", я вижу трассировку стека:

Exception in thread "main" com.beust.jcommander.ParameterException: Was passed main parameter '"-Dhttp.proxyHost=proxy.lan' but no main parameter was defined in your arg class.

Существует неотправленный PR , но я боюсь, что необходимость в использовании прокси при тестировании в корпоративной среде может не ощущаться разработчиком Se. Может быть, есть альтернативное решение.

...