Files
debian-vnc-xfce-g3/docker/xfce-firefox/README-dockerhub.md
2023-02-25 09:32:02 +01:00

9.9 KiB

Headless Debian/Xfce container with VNC/noVNC and Firefox browser

accetto/debian-vnc-xfce-firefox-g3

Docker Hub - Git Hub - Dockerfile - Full Readme - Changelog - Project Readme

badge-docker-pulls badge-docker-stars badge-github-release badge-github-release-date



Warning about the images with Firefox

There is no single-process Firefox image in this repository any more and the multi-process mode is always enabled. Be aware, that the multi-process mode requires larger shared memory (/dev/shm). At least 256MB is recommended. Please check the Firefox multi-process page in this older sibling Wiki for more information and the instructions, how to set the shared memory size in different scenarios.


Introduction

This repository contains resources for building Docker images based on Debian 11 with Xfce desktop environment and VNC/noVNC servers for headless use and the current Firefox web browser.

There is also a similar sibling image accetto/ubuntu-vnc-xfce-firefox-g3 based on Ubuntu 22.04 LTS and 20.04 LTS.

This is the short README version for the Docker Hub. There is also the full-length README on the GitHub.

TL;DR

Installing packages

I try to keep the images slim. Consequently you can encounter missing dependencies while adding more applications yourself. You can track the missing libraries on the Debian Packages Search page and install them subsequently.

You can also try to fix it by executing the following (the default sudo password is headless):

### apt cache needs to be updated only once
sudo apt-get update

sudo apt --fix-broken install

Shared memory size

Note that some applications require larger shared memory than the default 64MB. Using 256MB usually solves crashes or strange behavior.

You can check the current shared memory size by executing the following command inside the container:

df -h /dev/shm

The older sibling Wiki page Firefox multi-process describes several ways, how to increase the shared memory size.

Extending images

The provided example file Dockerfile.extend shows how to use the images as the base for your own images.

Your concrete Dockerfile may need more statements, but the concept should be clear.

The compose file example.yml shows how to switch to another non-root user and how to set the VNC password and resolution.

Building images

The fastest way to build the images:

### PWD = project root
### prepare and source the 'secrets.rc' file first (see 'example-secrets.rc')

### examples of building and publishing the individual images 
./builder.sh latest-firefox all

### just building an image, skipping the publishing and the version sticker update
./builder.sh latest-firefox build

### examples of building and publishing the images as a group
./ci-builder.sh all group latest-firefox

You can still execute the individual hook scripts as before (see the folder /docker/hooks/). However, the provided utilities builder.sh and ci-builder.sh are more convenient. Before pushing the images to the Docker Hub you have to prepare and source the file secrets.rc (see example-secrets.rc). The script builder.sh builds the individual images. The script ci-builder.sh can build various groups of images or all of them at once. Check the files local-builder-readme.md, local-building-example.md and the sibling Wiki for more information.

Note that selected features that are enabled by default can be explicitly disabled via environment variables. This allows to build even smaller images by excluding, for example, noVNC or Firefox Plus features. See readme-local-building-example.md for more information.

Sharing devices

Sharing the display with the host works only on Linux:

xhost +local:$(whoami)

docker run -it -P --rm \
    -e DISPLAY=${DISPLAY} \
    --device /dev/dri/card0 \
    -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
    accetto/debian-vnc-xfce-firefox-g3:latest --skip-vnc

xhost -local:$(whoami)

Sharing the X11 socket with the host works only on Linux:

xhost +local:$(whoami)

docker run -it -P --rm \
    --device /dev/dri/card0 \
    -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
    accetto/debian-vnc-xfce-firefox-g3:latest

xhost -local:$(whoami)

Description

This is the third generation (G3) of my headless images. The second generation (G2) contains the GitHub repository accetto/xubuntu-vnc-novnc. The first generation (G1) contains the GitHub repository accetto/ubuntu-vnc-xfce.

The main features and components of the images in the default configuration are:

  • utilities ping, wget, sudo (Debian distribution)
  • current version of JSON processor jq
  • light-weight Xfce desktop environment (Debian distribution)
  • current version of high-performance TigerVNC server and client
  • current version of noVNC HTML5 clients (full and lite) (TCP port 6901)
  • popular text editor nano (Debian distribution)
  • lite but advanced graphical editor mousepad (Debian distribution)
  • current version of tini as the entry-point initial process (PID 1)
  • support for overriding both the container user and the group
  • support of version sticker (see the full-length README on the GitHub)
  • current version of Firefox ESR (Extended Support Release) web browser and some additional Firefox plus features described in the full-length README on the GitHub

The history of notable changes is documented in the CHANGELOG.

container-screenshot

Image tags

The following image tags are regularly built and published on the Docker Hub:

  • latest based on Debian 11

    ![badge_latest_created][badge_latest_created] [![badge_latest_version-sticker][badge_latest_version-sticker]][link_latest_version-sticker-verbose]

Clicking on the version sticker badge reveals more information about the actual configuration of the image.

More information

More information about these images can be found in the full-length README file on the GitHub.