No description
Find a file
2023-01-15 13:04:01 -05:00
.github/ISSUE_TEMPLATE chore: add github issue template 2019-10-21 05:41:15 +08:00
.semaphore Update Semaphore configuration 2022-08-17 15:31:13 -04:00
flavors feat: support xfce4 2019-03-25 00:09:22 +08:00
hooks test: hooks 2019-03-20 21:37:46 +08:00
rootfs Fixing issues 2023-01-15 13:04:01 -05:00
screenshots Updating screen shots 2022-08-17 18:46:21 -04:00
web Merge pull request #235 from fcwu/dependabot/npm_and_yarn/web/dot-prop-4.2.1 2021-04-04 09:42:55 +08:00
.dockerignore feat: support video mode 2018-03-27 18:14:38 +08:00
.gitignore feat: support video mode 2018-03-27 18:14:38 +08:00
.gitmodules feat: support video mode 2018-03-27 18:14:38 +08:00
ARCHITECTURE.md Initial description of the architecture 2019-04-04 13:57:11 +02:00
DEVELOPMENT.md Some more docs 2019-04-04 16:41:31 +02:00
Dockerfile Disabled systemd-resolved 2023-01-13 11:05:03 -05:00
Dockerfile.j2 fix(jinja): support LXDE and Ubuntu 20.04 only 2020-07-22 22:48:31 +08:00
LICENSE Add license 2015-05-28 20:37:46 +08:00
Makefile fix(jinja): support LXDE and Ubuntu 20.04 only 2020-07-22 22:48:31 +08:00
README.md Change image location 2022-08-17 19:01:33 -04:00
TODO Clear TODO 2022-08-10 10:28:13 -04:00

cloud9-ide-vdi

Build Status Docker Pulls Docker Stars

docker-ubuntu-vnc-desktop is a Docker image to provide web VNC interface to access Ubuntu LXDE/LxQT desktop environment.

Quick Start

Run the docker container and access with port 6080

docker run -p 6080:80 -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi

Browse http://127.0.0.1:6080/

VNC Viewer

Forward VNC service port 5900 to host by

docker run -p 6080:80 -p 5900:5900 -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi

Now, open the vnc viewer and connect to port 5900. If you would like to protect vnc service by password, set environment variable VNC_PASSWORD, for example

docker run -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi

A prompt will ask password either in the browser or vnc viewer.

HTTP Base Authentication

This image provides base access authentication of HTTP via HTTP_PASSWORD

docker run -p 6080:80 -e HTTP_PASSWORD=mypassword -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi

SSL

To connect with SSL, generate self signed SSL certificate first if you don't have it

mkdir -p ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl/nginx.key -out ssl/nginx.crt

Specify SSL port by SSL_PORT, certificate path to /etc/nginx/ssl, and forward it to 6081

docker run -p 6081:443 -e SSL_PORT=443 -v ${PWD}/ssl:/etc/nginx/ssl -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi

Screen Resolution

The Resolution of virtual desktop adapts browser window size when first connecting the server. You may choose a fixed resolution by passing RESOLUTION environment variable, for example

docker run -p 6080:80 -e RESOLUTION=1920x1080 -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi

Default Desktop User

The default user is root. You may change the user and password respectively by USER and PASSWORD environment variable, for example,

docker run -p 6080:80 -e USER=doro -e PASSWORD=password -v /dev/shm:/dev/shm devindice/cloud9-ide-vdi

Deploy to a subdirectory (relative url root)

You may deploy this application to a subdirectory, for example /some-prefix/. You then can access application by http://127.0.0.1:6080/some-prefix/. This can be specified using the RELATIVE_URL_ROOT configuration option like this

docker run -p 6080:80 -e RELATIVE_URL_ROOT=some-prefix devindice/cloud9-ide-vdi

NOTE: this variable should not have any leading and trailing splash (/)

Sound (Preview version and Linux only)

It only works in Linux.

First of all, insert kernel module snd-aloop and specify 2 as the index of sound loop device

sudo modprobe snd-aloop index=2

Start the container

docker run -it --rm -p 6080:80 --device /dev/snd -e ALSADEV=hw:2,0 devindice/cloud9-ide-vdi

where --device /dev/snd -e ALSADEV=hw:2,0 means to grant sound device to container and set basic ASLA config to use card 2.

Launch a browser with URL http://127.0.0.1:6080/#/?video, where video means to start with video mode. Now you can start Chromium in start menu (Internet -> Chromium Web Browser Sound) and try to play some video.

Following is the screen capture of these operations. Turn on your sound at the end of video!

demo video

Generate Dockerfile from jinja template

WARNING: Deprecated

Dockerfile and configuration can be generated by template.

  • arch: one of amd64 or armhf
  • flavor: refer to file in flavor/flavor.yml
  • image: base image
  • desktop: desktop environment which is set in flavor
  • addon_package: Debian package to be installed which is set in flavor

Dockerfile and configuration are re-generate if they do not exist. Or you may force to re-generate by removing them with the command make clean.

Troubleshooting and FAQ

  1. boot2docker connection issue, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/2
  2. Multi-language supports, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/80
  3. Autostart, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/85#issuecomment-466778407
  4. x11vnc arguments(multiptr), https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/101
  5. firefox/chrome crash (/dev/shm), https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/112
  6. resize display size without destroying container, https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/115#issuecomment-522426037

License

See the LICENSE file for details.

New

Failing to generate a key using the below path will cause the key to delete after a routine update to the cluster. After the upgrade, use the command above to generate a new key for it to be persistent

ENV Vars USER PASSWORD RESOLUTION TZ DOMAIN? MENU_NAME MENU_ICON SHOW_MENU_ICONS SHOW_TOOLTIPS SHOW_GENERIC_NAMES

set docker group id to the host group id