2023-03-24 14:20:53 +01:00
2023-03-24 14:20:53 +01:00
2023-03-12 18:39:11 +01:00
2023-02-22 15:35:38 +01:00
2023-01-28 10:53:53 +01:00
2023-01-28 10:53:53 +01:00
2023-03-12 18:39:11 +01:00
2023-01-30 18:16:26 +01:00
2023-03-12 18:39:11 +01:00
2023-03-12 18:39:11 +01:00
2023-03-12 18:39:11 +01:00
2023-03-12 18:39:11 +01:00

Headless Debian/Xfce containers with VNC/noVNC

Project accetto/debian-vnc-xfce-g3

Version: G3v1


Docker Hub - Changelog - sibling Wiki - sibling Discussions

badge-github-release badge-github-release-date badge-github-stars badge-github-forks badge-github-open-issues badge-github-closed-issues badge-github-releases badge-github-commits badge-github-last-commit


Introduction

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

The resources for the individual images and their variations (tags) are stored in the subfolders of the master branch. Each image has its own README file describing its features and usage.

The repository has been derived from the sibling project accetto/ubuntu-vnc-xfce-g3 containing similar images based on Ubuntu 22.04 LTS and 20.04 LTS.

TL;DR

There are currently resources for the following Docker images:

Installing packages

I try to keep the images slim. Consequently you can sometimes 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 all
./builder.sh latest-chromium all
./builder.sh latest-firefox all

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

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

### or all the images at once
./ci-builder.sh all group complete

### or skipping the publishing to the Docker Hub
./ci-builder.sh all-no-push group complete

### and so on

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 builder-utility-readme, local-building-example and sibling Wiki for more information.

Sharing devices

Sharing the audio device for video with sound works only with Chromium and only on Linux:

docker run -it -P --rm \
  --device /dev/snd:/dev/snd:rw \
  --group-add audio \
accetto/debian-vnc-xfce-chromium-g3:latest

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-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-g3:latest

xhost -local:$(whoami)

Image generations

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.

Project versions

This file describes the first generation (G3v1) of this project, which however corresponds to the fourth version (G3v4) of the sibling project accetto/ubuntu-vnc-xfce-g3.

Please refer to the sibling project to learn more about the older project versions.

Project goals

Please refer to the sibling project to learn more about the project goals.

Project features

Please refer to the sibling project to learn more about the project features.


Issues, Wiki and Discussions

If you have found a problem or you just have a question, please check the Issues and the sibling Wiki first. Please do not overlook the closed issues.

If you do not find a solution, you can file a new issue. The better you describe the problem, the bigger the chance it'll be solved soon.

If you have a question or an idea and you don't want to open an issue, you can use the sibling Discussions.

Credits

Credit goes to all the countless people and companies, who contribute to open source community and make so many dreamy things real.


Description
Headless Debian/Xfce containers with VNC/noVNC (G3v1).
Readme 1.8 MiB
Languages
Shell 99.3%
JavaScript 0.4%
Dockerfile 0.3%