Ver código fonte

Add RUN_FLUXBOX and RUN_XTERM variables

Andrew Phillips 7 anos atrás
pai
commit
22e1c593c4
3 arquivos alterados com 45 adições e 21 exclusões
  1. 12 12
      Dockerfile
  2. 14 9
      README.md
  3. 19 0
      entrypoint.sh

+ 12 - 12
Dockerfile

@@ -1,15 +1,5 @@
 FROM debian:stretch
 
-# Setup demo environment variables
-ENV HOME=/root \
-    DEBIAN_FRONTEND=noninteractive \
-    LANG=en_US.UTF-8 \
-    LANGUAGE=en_US.UTF-8 \
-    LC_ALL=C.UTF-8 \
-    DISPLAY=:0.0 \
-    DISPLAY_WIDTH=1024 \
-    DISPLAY_HEIGHT=768
-
 # Install git, supervisor, VNC, & X11 packages
 RUN set -ex; \
     apt-get update; \
@@ -25,7 +15,17 @@ RUN set -ex; \
       xterm \
       xvfb
 
+# Setup demo environment variables
+ENV HOME=/root \
+    DEBIAN_FRONTEND=noninteractive \
+    LANG=en_US.UTF-8 \
+    LANGUAGE=en_US.UTF-8 \
+    LC_ALL=C.UTF-8 \
+    DISPLAY=:0.0 \
+    DISPLAY_WIDTH=1024 \
+    DISPLAY_HEIGHT=768 \
+    RUN_XTERM=yes \
+    RUN_FLUXBOX=yes
 COPY . /app
-
-CMD ["/usr/bin/supervisord", "-c", "/app/supervisord.conf"]
+CMD ["/app/entrypoint.sh"]
 EXPOSE 8080

+ 14 - 9
README.md

@@ -4,7 +4,7 @@
 This image is intended to be used for displaying X11 applications from other containers in a browser. A stand-alone demo as well as a [Version 2](https://docs.docker.com/compose/compose-file/#version-2) composition.
 
 ## Image Contents
-___
+
 * [Xvfb](http://www.x.org/releases/X11R7.6/doc/man/man1/Xvfb.1.xhtml) - X11 in a virtual framebuffer
 * [x11vnc](http://www.karlrunge.com/x11vnc/) - A VNC server that scrapes the above X11 server
 * [noNVC](https://kanaka.github.io/noVNC/) - A HTML5 canvas vnc viewer
@@ -12,20 +12,24 @@ ___
 * [socat](http://www.dest-unreach.org/socat/) - for use with other containers
 * [xterm](http://invisible-island.net/xterm/) - to demo that it works
 * [supervisord](http://supervisord.org) - to keep it all running
+
 ## Usage
-___
+
+### Variables
+
+You can specify the following variables:
+* `DISPLAY_WIDTH=<width>` (1024)
+* `DISPLAY_HEIGHT=<height>` (768)
+* `RUN_XTERM={yes|no}` (yes)
+* `RUN_FLUXBOX={yes|no}` (yes)
+
 ### Stand-alone Demo
-*On Windows and OS X Only -*
-Determine the Docker machine IP address:
-```bash
-$ docker-machine ip $(docker-machine active)
-192.168.99.101
-```
 Run: 
 ```bash
 $ docker run --rm -it -p 8080:8080 theasp/novnc
 ```
-Open a browser and hit the *Connect* button to see the `xterm` demo at `http://<DOCKER_MACHINE_IP>:8080/vnc.html`
+Open a browser and see the `xterm` demo at `http://<server>:8080/vnc.html`
+
 ### V2 Composition
 A version of the [V2 docker-compose example](https://github.com/theasp/docker/blob/master/docker-compose.yml) is shown below to illustrate how this image can be used to greatly simplify the use of X11 applications in other containers. With just `docker-compose up -d`, your favorite IDE can be accessed via a browser.
 
@@ -61,6 +65,7 @@ networks:
   x11:
 ```
 **If the IDE fails to start simply run `docker-compose restart <container-name>`.** 
+
 ## On DockerHub / GitHub
 ___
 * DockerHub [theasp/novnc](https://hub.docker.com/r/theasp/novnc/)

+ 19 - 0
entrypoint.sh

@@ -0,0 +1,19 @@
+#!/bin/bash
+set -ex
+
+RUN_FLUXBOX=${RUN_FLUXBOX:-yes}
+RUN_XTERM=${RUN_XTERM:-yes}
+
+case $RUN_FLUXBOX in
+  false|no|n|0)
+    rm -f /app/conf.d/fluxbox.conf
+    ;;
+esac
+
+case $RUN_XTERM in
+  false|no|n|0)
+    rm -f /app/conf.d/xterm.conf
+    ;;
+esac
+
+exec supervisord -c /app/supervisord.conf