How to setup Selenium Chrome Docker to use HTTP Proxy

As you may know, selenium docker is the main stream way to do a real GUI End-2-End headless testing over Chrome / Firefox. While it really hassled me that the lack of docs to get it work behind corporate http proxy.

After days of trying, I finally featured out the way to get Selenium Chrome Docker (StandaloneChromeDebug) to adopt Oracle Proxy.

Here is the Dockerfile:

FROM selenium/standalone-chrome-debug
MAINTAINER paul.lan@oracle.com

ARG https_proxy
ARG http_proxy
ARG no_proxy

ENV https_proxy ${https_proxy}
ENV HTTPS_PROXY ${https_proxy}

ENV http_proxy ${http_proxy}
ENV HTTP_PROXY ${http_proxy}

ENV no_proxy ${no_proxy}
ENV NO_PROXY ${no_proxy}

WORKDIR /tmp

RUN echo "a2: Got Proxy setting as: ${http_proxy}"

RUN echo "http_proxy=\"${http_proxy}\"" >> /etc/environment && \
  echo "HTTP_PROXY=\"${http_proxy}\"" >> /etc/environment && \
  echo "https_proxy=\"${https_proxy}\"" >> /etc/environment && \
  echo "HTTPS_PROXY=\"${https_proxy}\"" >> /etc/environment && \
  echo "no_proxy=\"${no_proxy}\"" >> /etc/environment && \
  echo "NO_PROXY=\"${no_proxy}\"" >> /etc/environment  && \
  echo "ftp_proxy=\"${http_proxy}\"" >> /etc/environment  && \
  echo "FTP_PROXY=\"${http_proxy}\"" >> /etc/environment

docker build script:

  dockerBuildScript="docker build -t SeleniumStandaloneChromeDebug-Proxy-Image"
  assumedSeleniumDockerContainerName="mySeleniumChromeDebugContainer"

  if [[ ! -z ${https_proxy} ]];then
    dockerBuildScript="${dockerBuildScript} --build-arg https_proxy='${https_proxy}'"
  fi

  if [[ ! -z ${http_proxy} ]];then
    dockerBuildScript="${dockerBuildScript} --build-arg http_proxy='${http_proxy}'"
  fi

  if [[ ! -z ${no_proxy} ]];then
    dockerBuildScript="${dockerBuildScript} --build-arg no_proxy='${no_proxy},${assumedSeleniumDockerContainerName}'"
  fi

  dockerBuildScript="${dockerBuildScript} -f Dockerfile ."

  eval "${dockerBuildScript}"

Here is the VNC screenshot:

 

Note that, to let docker pull behind proxy over Oracle Linux 7, you have to set it to service first, just following: 

https://docs.oracle.com/cd/E37670_01/E75728/html/section_kfy_f2z_fp2.html"

Leave a Reply

Your email address will not be published. Required fields are marked *