Skip to content

vasilev/docker-image-palemoon

Repository files navigation

Pale Moon browser in a Docker container

Introduction

Dockerfile to create a Docker container image with Pale Moon for Linux.

The aim of this project is to provide the ability to surf a little bit more "anonymously" than in a browser installed directly into the host system.

The image uses X11 and Pulseaudio unix domain sockets on the host to enable audio support in Pale Moon. These components are available out of the box on pretty much any modern linux distribution.

Getting started

Installation

Builds of the image are available on Dockerhub and is the recommended method of installation.

docker pull vasilev/palemoon:latest

Alternatively you can build the image yourself.

docker build -t vasilev/palemoon github.com/vasilev/docker-image-palemoon

With the image locally available, install the wrapper scripts to launch palemoon using:

docker run -it --rm \
  --volume /usr/local/bin:/target \
  vasilev/palemoon:latest install

This will extract a wrapper scripts from the image and install them into your host system at /usr/local/bin.

Alternatively just download the wrapper script from GitHub, make it executable, and create a symlink "palemoon" pointing to that wrapper.

Run Pale Moon

After installation phase just run in your console:

palemoon

Note

If Pale Moon is installed on the host then the host binary is launched instead of starting a Docker container. To force the launch of Pale Moon in a container use the palemoon-wrapper script. For example, palemoon-wrapper palemoon will launch Pale Moon inside a Docker container regardless of whether it is installed on the host or not.

How it works

The wrapper scripts volume mount the X11 and pulseaudio sockets in the launcher container. The X11 socket allows for the user interface display on the host, while the pulseaudio socket allows for the audio output to be rendered on the host.

When the image is launched the following directories are mounted as volumes:

  • ${HOME}/'.moonchildproductions'
  • XDG_DOWNLOAD_DIR or if it is missing ${HOME}/Downloads

This makes sure that your profile details are stored on the host and files received via Pale Moon are available on your host in the appropriate download directory.

Maintenance

Upgrading

To upgrade to newer releases:

  1. Download the updated Docker image:
docker pull vasilev/palemoon:latest
  1. Run install to make sure the host scripts are updated.
docker run -it --rm \
  --volume /usr/local/bin:/target \
  vasilev/palemoon:latest install

Uninstallation

docker run -it --rm \
  --volume /usr/local/bin:/target \
  vasilev/palemoon:latest uninstall

Shell Access

For debugging and maintenance purposes you may want access the containers shell. If you are using Docker version 1.3.0 or higher you can access a running containers shell by starting bash using docker exec:

docker exec -it palemoon-container-name bash

Credits

This project is based on code and texts from: