accetto / headless-drawing-g3

Headless Ubuntu/Xfce containers with VNC/noVNC for diagramming, image editing and 2D/3D drawing (G3v5)
MIT License
29 stars 3 forks source link
accetto bitmap blender diagramming docker-image dockerfiles drawing drawio editing gimp headless inkscape novnc opengl painting ubuntu virtualgl vnc webgl

Headless Ubuntu/Xfce containers with VNC/noVNC for diagramming, image editing and 2D/3D drawing

Project accetto/headless-drawing-g3

Version: G3v5


User Guide - 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 GitHub repository contains resources and tools for building Docker images for headless working.

The images are based on Ubuntu 22.04 LTS and include Xfce desktop, TigerVNC server and noVNC client. The popular web browsers Chromium and Firefox are also included.

The image family provides also selected applications for headless drawing, graphics and modelling.

The generic images and some application images include Mesa3D libraries and VirtualGL toolkit, supporting OpenGL, OpenGL ES, WebGL and other APIs for 3D graphics. They also include the OpenGL test applications glxgears, es2tri and the OpenGL benchmark glmark2.

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:

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

Another sibling project accetto/headless-coding-g3 contains images for headless programming.

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 fifth version (G3v5) of the project.

Remark: The version number G3v4 has been skipped, to align the numbering with the sibling project accetto/ubuntu-vnc-xfce-g3.

The second version (G3v2) and the first version (G3v1, or simply G3) will still be available in this GitHub repository as the branches archived-generation-g3v2 and archived-generation-g3v1. The third version (G3v3) was not archived, because the changes are minor.

The version G3v5 brings only one significant change comparing to the previous version G3v4:

The version G3v3 has brought the following major changes comparing to the previous version G3v2:

The version G3v2 has brought the following major changes comparing to the previous version G3v1:

The changes affect only the building pipeline, not the Docker images themselves. The Dockerfile, apart from using the new local g3-cache, stays conceptually unchanged.

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.

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.