The latest possible version is Java 1.8 in combination with Firefox 52.8.0. Since both Java and Firefox versions are old and very likely possess serious vulnerabilities, it is necessary to emphasize that they should be used solely for accessing trusted remote server boards, and nothing else!

The Docker image we use is based on CentOS 6 with additional installations of Java and Firefox. Therefore X11 server is necessary to display the browser window. Linux and Unix based operating systems support X11 out of the box. MacOS and Windows users will have to download a free implementation of X11.

Let’s pull the Docker image first.

docker pull ugrawert/firefox-java:latest

For Linux users the DISPLAY variable needs to be adapted as following.

DISPLAY=unix${DISPLAY};

For MacOS users, access to the X11 server needs to be granted and the DISPLAY variable needs to be set accordingly.

xhost +localhost
DISPLAY=host.docker.internal:0;

With these settings we can run the docker container as following:

docker run --rm -ti
 -v "$PWD/.ff_profile:/home/firefox/.mozilla/firefox" \
 -v "${HOME}/Downloads:/home/firefox/Downloads:rw" \
 -v "/tmp/.X11-unix:/tmp/.X11-unix" \
 -e "DISPLAY=${DISPLAY}" \
 -e "uid=$(id -u)" \
 -e "gid=$(id -g)" \
 ugrawert/firefox-java

If a proxy is necessary to access the remote board, the following file needs to be present and made available to the container.

proxy.js:

pref("network.proxy.http", "proxy.server.local");
pref("network.proxy.http_port", 8080);
pref("network.proxy.ssl", "proxy.server.local");
pref("network.proxy.ssl_port", 8080);
pref("network.proxy.no_proxies_on", "localhost, 127.0.0.1, *.server.local");
pref("network.proxy.type", 1);
pref("network.proxy.share_proxy_settings", true);

The file is passed as volume to the container by adding the following option to the Docker command.

-v "$PWD/proxy.js:/etc/firefox/pref/proxy.js"

A custom preferences file can be added as well, by adding the following option to the Docker command:

-v "mozilla.cfg:/usr/lib64/firefox/defaults/preferences/all-redhat.js"

The Git project for building the Docker image can be found here.

start script is available, which can be placed into PATH to run the container from a simple command.

Uwe Grawert
Uwe Grawert has been with B1 Systems for more than 8 years, working as Linux and Unix Consultant. He is dealing with Openstack since 4 years and lately with Kubernetes.