Skip to content

accetto/debian-vnc-xfce-g3

Repository files navigation

Headless Debian/Xfce containers with VNC/noVNC

Project accetto/debian-vnc-xfce-g3

Version: G3v8


User Guide - Docker Hub - Changelog - sibling Wiki - sibling Discussions

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


Introduction

This GitHub repository contains resources and tools for building Docker images for headless working.

The images are based on the current Debian 12 and the previous Debian 11 and include Xfce desktop, TigerVNC server and noVNC client. The popular web browsers Chromium and Firefox are also included.

This User guide describes the images and how to use them.

The content of this GitHub project is intended for developers and image builders.

Ordinary users can simply use the images available in the following repositories on Docker Hub:

This project 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.

Building images

You can execute the individual hook scripts in the folder /docker/hooks/. However, the provided utilities are more convenient.

The script builder.sh builds individual images. The script ci-builder.sh can build various groups of images or all of them at once.

Before building the images you have to prepare and source the file secrets.rc (see example-secrets.rc).

Features that are enabled by default can be explicitly disabled via environment variables. This allows building even smaller images by excluding the individual features (e.g. noVNC).

The resources for building the individual images and their variations (tags) are in the subfolders of the /docker/ folder.

The individual README files contain quick examples of building the images:

Each image also has a separate README file intended for Docker Hub. The final files should be generated by the utility util-readme.sh and then copied to Docker Hub manually.

The following resources describe the image building subject in details:

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 eighths version (G3v8) of the project.

This version brings some changes in the building pipeline and building utilities and it also fixes the problem with the badge service.

The service Badgen.net, which has been unusable for some time already, was replaced by the service Shields.io.

Consequently it was necessary to update all README files of all accetto repositories on Docker Hub. Therefore there are several new functions that support this kind of scenarios.

For example, now it's possible to update the deployment gists on the GitHub without re-build the images first. The updated hook script post_push can extract the badge values ad-hoc from the final deployment images available locally and it doesn't depend on the helper files created during the pre_build phase. It would use the images pulled from the Docker Hub as well.

This change makes it possible to refresh the gists using the "historical" data extracted from previously published images.

Gist updates are also more reliable because there will be up to 3 retries if an update fails.

The new functionality is available through the updated utility ci-builder.sh, which has got the following new commands:

  • list
  • pull
  • update-gists
  • helper-help

Please check the files readme-ci-builder.md and readme-builder.md for the description.

However, the project keeps evolving. Please always check the CHANGELOG for the latest changes.

Previous versions

The previous versions are still available in this GitHub repository as the branches named as archived-generation-g3v{d}.

The version G3v7 could build final images significantly faster, because the temporary helper images were used as external caches.

Internally, the helper image was built by the pre_build hook script and then used by the build hook script as an external cache.

The helper image was then removed by the build hook script and not the pre_build hook script as before, unless the build script will be skipped.

The main purpose of the version G3v6 was to keep the project and the images uniform with the ones from the sibling Ubuntu projects.

The version G3v5 has brought only one significant change comparing to the previous version G3v1.

  • The updated script set_user_permissions.sh, which is part of Dockerfiles, skips the hidden files and directories now. It generally should not have any unwanted side effects, but it may make a difference in some scenarios, hence the version increase.

Remark: The version numbers G3v4, G3v3 and G3v2 have been skipped, to align the numbering with 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.

How to fork

If you want to fork this project, then please check the page How to fork this repository in the sibling Wiki.

Getting help

If you have found a problem or you just have a question, please check the User guide, 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.