Release 23.08

This commit is contained in:
accetto
2023-08-05 13:51:22 +02:00
parent 57a085c8fa
commit eaf0eefe4b
18 changed files with 415 additions and 2619 deletions
+56 -162
View File
@@ -2,221 +2,115 @@
## accetto/debian-vnc-xfce-g3
[Docker Hub][this-docker] - [Git Hub][this-github] - [Dockerfile][this-dockerfile] - [Full Readme][this-readme-full] - [Changelog][this-changelog] - [Project Readme][this-readme-project]
[User Guide][this-user-guide] - [GitHub][this-github] - [Dockerfile][this-dockerfile] - [Readme][this-readme-full] - [Changelog][this-changelog]
![badge-docker-pulls][badge-docker-pulls]
![badge-docker-stars][badge-docker-stars]
![badge-github-release][badge-github-release]
![badge-github-release-date][badge-github-release-date]
***
- [Headless Debian/Xfce container with VNC/noVNC](#headless-debianxfce-container-with-vncnovnc)
- [accetto/debian-vnc-xfce-g3](#accettodebian-vnc-xfce-g3)
- [Introduction](#introduction)
- [TL;DR](#tldr)
- [Installing packages](#installing-packages)
- [Shared memory size](#shared-memory-size)
- [Extending images](#extending-images)
- [Building images](#building-images)
- [Sharing devices](#sharing-devices)
- [Description](#description)
- [Image tags](#image-tags)
- [More information](#more-information)
This Docker Hub repository contains Docker images for headless working.
***
The images are based on [Debian 11][docker-debian] and include [Xfce][xfce] desktop, [TigerVNC][tigervnc] server and [noVNC][novnc] client.
### Introduction
There is also a similar sibling repository [accetto/ubuntu-vnc-xfce-g3][accetto-dockerhub-ubuntu-vnc-xfce-g3], containing images based on [Ubuntu 22.04 LTS and 20.04 LTS][docker-ubuntu].
This repository contains resources for building Docker images based on [Debian 11][docker-debian] with [Xfce][xfce] desktop environment and [VNC][tigervnc]/[noVNC][novnc] servers for headless use.
This [User guide][this-user-guide] describes the images and how to use them.
There is also a similar sibling image [accetto/ubuntu-vnc-xfce-g3][accetto-dockerhub-ubuntu-vnc-xfce-g3] based on [Ubuntu 22.04 LTS and 20.04 LTS][docker-ubuntu].
The following image tags are regularly built and published on Docker Hub:
This is the **short README** version for the **Docker Hub**. There is also the [full-length README][this-readme-full] 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][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**):
```shell
### 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:
```shell
df -h /dev/shm
```
The older sibling Wiki page [Firefox multi-process][that-wiki-firefox-multiprocess] 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:
```shell
### 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
### just building an image, skipping the publishing and the version sticker update
./builder.sh latest build
### examples of building and publishing the images as a group
./ci-builder.sh all group latest
```
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][this-builder-readme], [local-building-example][this-readme-local-building-example] and [sibling Wiki][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`. See the [local-building-example][this-readme-local-building-example] for more information.
#### Sharing devices
Sharing the display with the host works only on Linux:
```shell
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:
```shell
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)
```
### Description
This is the **third generation** (G3) of my headless images. The **second generation** (G2) contains the GitHub repository [accetto/xubuntu-vnc-novnc][accetto-github-xubuntu-vnc-novnc]. The **first generation** (G1) contains the GitHub repository [accetto/ubuntu-vnc-xfce][accetto-github-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][jq]
- light-weight [Xfce][xfce] desktop environment (Debian distribution)
- current version of high-performance [TigerVNC][tigervnc] server and client
- current version of [noVNC][novnc] HTML5 clients (full and lite) (TCP port **6901**)
- popular text editor [nano][nano] (Debian distribution)
- lite but advanced graphical editor [mousepad][mousepad] (Debian distribution)
- current version of [tini][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][this-readme-full] on the **GitHub**)
The history of notable changes is documented in the [CHANGELOG][this-changelog].
![container-screenshot][this-screenshot-container]
### Image tags
The following image tags are regularly built and published on the **Docker Hub**:
<!-- markdownlint-disable MD052 -->
- `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.
<!-- markdownlint-enable MD052 -->
### More information
**Hint:** Clicking the version sticker badge reveals more information about the particular build.
More information about these images can be found in the [full-length README][this-readme-full] file on the GitHub.
The main features and components of the images in the default configuration are:
- lightweight [Xfce][xfce] desktop environment (Debian distribution)
- [sudo][sudo] support
- current version of JSON processor [jq][jq]
- current version of high-performance [TigerVNC][tigervnc] server and client
- current version of [noVNC][novnc] HTML5 clients (full and lite) (TCP port **6901**)
- popular text editor [nano][nano] (Debian distribution)
- lite but advanced graphical editor [mousepad][mousepad] (Debian distribution)
- current version of [tini][tini] as the entry-point initial process (PID 1)
- support for overriding environment variables, VNC parameters, user and group (see [User guide][this-user-guide-using-containers])
- support of **version sticker** (see [User guide][this-user-guide-version-sticker])
The following **TCP** ports are exposed by default:
- **5901** for access over **VNC** (using VNC viewer)
- **6901** for access over [noVNC][novnc] (using web browser)
![container-screenshot][this-screenshot-container]
This is the **third generation** (G3) of my headless images.
The **second generation** (G2) contains the GitHub repository [accetto/xubuntu-vnc-novnc][accetto-github-xubuntu-vnc-novnc].
The **first generation** (G1) contains the GitHub repository [accetto/ubuntu-vnc-xfce][accetto-github-ubuntu-vnc-xfce].
If you've found a problem or you just have a question, please check the [User guide][this-user-guide], [Issues][this-issues] and [sibling Wiki][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 also use the [sibling Discussions][sibling-discussions].
**Remark:** The [GitHub project][this-github] contains image generators that image users generally dont need, unless they want to build the images themselves.
***
<!-- GitHub project common -->
[this-user-guide]: https://accetto.github.io/user-guide-g3/
[this-user-guide-version-sticker]: https://accetto.github.io/user-guide-g3/version-sticker/
[this-user-guide-using-containers]: https://accetto.github.io/user-guide-g3/using-containers/
[this-changelog]: https://github.com/accetto/debian-vnc-xfce-g3/blob/master/CHANGELOG.md
[this-github]: https://github.com/accetto/debian-vnc-xfce-g3/
<!-- [this-issues]: https://github.com/accetto/debian-vnc-xfce-g3/issues -->
[this-readme-full]: https://github.com/accetto/debian-vnc-xfce-g3/blob/master/docker/xfce/README.md
[this-readme-project]: https://github.com/accetto/debian-vnc-xfce-g3/blob/master/README.md
[this-builder-readme]: https://github.com/accetto/debian-vnc-xfce-g3/blob/master/readme-builder.md
[this-readme-local-building-example]: https://github.com/accetto/debian-vnc-xfce-g3/blob/master/readme-local-building-example.md
[this-issues]: https://github.com/accetto/debian-vnc-xfce-g3/issues
<!-- Docker image specific -->
[this-docker]: https://hub.docker.com/r/accetto/debian-vnc-xfce-g3/
[this-dockerfile]: https://github.com/accetto/debian-vnc-xfce-g3/blob/master/docker/Dockerfile.xfce
[this-screenshot-container]: https://raw.githubusercontent.com/accetto/debian-vnc-xfce-g3/master/docker/doc/images/debian-vnc-xfce-g3.jpg
<!-- Sibling projects -->
[this-screenshot-container]: https://raw.githubusercontent.com/accetto/debian-vnc-xfce-g3/master/docker/doc/images/debian-vnc-xfce-g3-latest.png
[accetto-dockerhub-ubuntu-vnc-xfce-g3]: https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-g3
[sibling-wiki]: https://github.com/accetto/ubuntu-vnc-xfce-g3/wiki
<!-- Previous generations -->
[sibling-discussions]: https://github.com/accetto/ubuntu-vnc-xfce-g3/discussions
[accetto-github-xubuntu-vnc-novnc]: https://github.com/accetto/xubuntu-vnc-novnc/
[accetto-github-ubuntu-vnc-xfce]: https://github.com/accetto/ubuntu-vnc-xfce
[that-wiki-firefox-multiprocess]: https://github.com/accetto/xubuntu-vnc/wiki/Firefox-multiprocess
<!-- External links -->
[docker-debian]: https://hub.docker.com/_/debian/
[docker-ubuntu]: https://hub.docker.com/_/ubuntu/
<!-- [docker-doc]: https://docs.docker.com/ -->
<!-- [docker-doc-managing-data]: https://docs.docker.com/storage/ -->
[debian-packages-search]: https://packages.debian.org/index
[jq]: https://stedolan.github.io/jq/
[mousepad]: https://github.com/codebrainz/mousepad
[nano]: https://www.nano-editor.org/
[novnc]: https://github.com/kanaka/noVNC
[sudo]: https://www.sudo.ws/
[tigervnc]: http://tigervnc.org
[tini]: https://github.com/krallin/tini
[xfce]: http://www.xfce.org
<!-- github badges common -->
[badge-github-release]: https://badgen.net/github/release/accetto/debian-vnc-xfce-g3?icon=github&label=release
[badge-github-release-date]: https://img.shields.io/github/release-date/accetto/debian-vnc-xfce-g3?logo=github
<!-- docker badges specific -->
[badge-github-release]: https://badgen.net/github/release/accetto/debian-vnc-xfce-g3?icon=github&label=GitHub
[badge-docker-pulls]: https://badgen.net/docker/pulls/accetto/debian-vnc-xfce-g3?icon=docker&label=pulls
[badge-docker-stars]: https://badgen.net/docker/stars/accetto/debian-vnc-xfce-g3?icon=docker&label=stars
<!-- Appendix -->
<!-- Appendix will be added by util-readme.sh -->