Skip to content
This repository was archived by the owner on Mar 21, 2021. It is now read-only.

Latest commit

 

History

History

xubuntu-vnc-drawio

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Headless Ubuntu/Xfce container with VNC and drawio-desktop

accetto/xubuntu-vnc-drawio

Docker Hub - Git Hub - Changelog - Wiki - Hierarchy


Attention! This repository is retired and archived. It will not be developed any further and the related images on Docker Hub will not be rebuilt any more. They will phase out and they will be deleted after becoming too old. Please use the newer third generation (G3) repositories accetto/headless-coding-g3 and accetto/headless-drawing-g3 and the related images on Docker Hub instead. If you still need images based on Ubuntu 18.04 LTS, then use the second generation (G2) repository accetto/xubuntu-vnc-novnc, which will be still maintained.


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


This repository contains resources for building Docker images based on Ubuntu with Xfce desktop environment, VNC server for headless use and the free open-source desktop version of the diagramming tool draw.io.

The images are part of the growing image hierarchy and they are based on accetto/xubuntu-vnc. They inherit all the features and therefore not the whole description will be repeated here.

The latest image inherits among others

  • utilities ping, wget, zip, unzip, sudo, curl, git (Ubuntu distribution)
  • utility gdebi lets you install local .deb packages resolving and installing their dependencies (Ubuntu distribution)
  • popular text editors vim and nano (Ubuntu distribution)
  • lite but advanced graphical editor mousepad (Ubuntu distribution)
  • xfce4-screenshooter and image viewer ristretto (Ubuntu distribution)
  • tini as the entry-point initial process (PID 1)
  • current version of JSON processor jq

and adds

Important excerpt from the author's description:

Security

draw.io Desktop is designed to be completely isolated from the Internet. All JavaScript files are self-contained, the Content Security Policy forbids running remotely loaded JavaScript.

No diagram data is ever sent externally, nor do we send any analytics about app usage externally. This means certain functionality for which we do not have a JavaScript implementation do not work in the Desktop build, namely .vsd and Gliffy import.

The history of notable changes is documented in the CHANGELOG.

container-screenshot

Image tags

The following image tags are regularly maintained and rebuilt:

  • latest is based on accetto/xubuntu-vnc:latest

    badge-VERSION_STICKER_LATEST badge-github-commit-latest

Dockerfiles

The Git Hub repository contains several Dockerfiles that can be used to build the images.

  • Dockerfile.drawio

    This is the main Dockerfile for building the latest image tag based on the accetto/xubuntu-vnc:latest tag by default.

    However, by providing the BASETAG build argument it is possible to build images based on other base tags, for example accetto/xubuntu-vnc:lab.

    By providing the BASEIMAGE build argument it is possible to build images based on other base images, for example accetto/xubuntu-vnc-firefox.

Ports

The image exposes only the TCP port 5901 and therefore the containers consume only one TCP port (per container) on the host computer.

Volumes

The containers do not create or use any external volumes by default. However, the following folders make good mounting points: /home/headless/Documents/, /home/headless/Downloads/, /home/headless/Pictures/, /home/headless/Public/

Both named volumes and bind mounts can be used. More about volumes can be found in the Docker documentation (e.g. Manage data in Docker).

Container user

Containers created from these images run under the non-root default application user (headless, 1001:0). However, the sudo command allows user elevation. For more description check the base image accetto/xubuntu-vnc or Wiki.

Version sticker

Version sticker serves multiple purposes that are closer described in Wiki. The version sticker value identifies the version of the docker image and it is persisted in it when it is built. It is also shown as a badge in the README file.

However, the script version_sticker.sh can be used anytime for convenient checking of the current versions of installed applications.

The script is deployed into the startup folder, which is defined by the environment variable STARTUPDIR with the default value of /dockerstartup.

If the script is executed inside a container without an argument, then it returns the current version sticker value of the container. This value is newly calculated and it is based on the current versions of the essential applications in the container.

The current version sticker value will differ from the persisted value, if any of the included application has been updated to another version.

If the script is called with the argument -v (lower case v), then it prints out verbose versions of the essential applications that are included in the version sticker value.

If it is called with the argument -V (upper case v), then it prints out verbose versions of some more applications.

Examples can be found in Wiki.

Using headless containers

The containers are intended to be used through a VNC Viewer (e.g. TigerVNC or TightVNC). The viewer should connect to the host running the container, pointing to its TCP port mapped to the container's port 5901.

Issues

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

Credits

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