GUACAMOLE-100: Document using arbitary Guacamole extensions with Docker.
diff --git a/src/chapters/docker.xml b/src/chapters/docker.xml
index da1b905..c58cee8 100644
--- a/src/chapters/docker.xml
+++ b/src/chapters/docker.xml
@@ -811,6 +811,62 @@
configured to use each when the Docker image starts.</para>
</section>
</section>
+ <section xml:id="guacamole-docker-guacamole-home">
+ <title>Custom extensions and <envar>GUACAMOLE_HOME</envar></title>
+ <para>If you have your own or third-party extensions for Guacamole which are not
+ supported by the Guacamole Docker image, but are compatible with the version of
+ Guacamole within the image, you can still use them by providing a custom base
+ configuration using the <envar>GUACAMOLE_HOME</envar> environment variable:</para>
+ <informaltable frame="all">
+ <tgroup cols="2">
+ <colspec colname="c1" colnum="1" colwidth="1*"/>
+ <colspec colname="c2" colnum="2" colwidth="4*"/>
+ <thead>
+ <row>
+ <entry>Variable</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><envar>GUACAMOLE_HOME</envar></entry>
+ <entry>
+ <para>The absolute path to the directory within the Docker container
+ to use <emphasis>as a template</emphasis> for the image's
+ automatically-generated <link
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ linkend="guacamole-home"
+ ><envar>GUACAMOLE_HOME</envar></link>. Any configuration
+ generated by the Guacamole Docker image based on other
+ environment variables will be applied to an independent copy of
+ the contents of this directory.</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <para>You will <emphasis>still</emphasis> need to follow the steps required to create
+ the contents of <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ linkend="guacamole-home"><envar>GUACAMOLE_HOME</envar></link> specific to your
+ extension (placing the extension itself within
+ <filename><replaceable>GUACAMOLE_HOME</replaceable>/extensions/</filename>,
+ adding any properties to <filename>guacamole.properties</filename>, etc.), but the
+ rest of Guacamole's configuration will be handled automatically, overlaid on top of
+ a copy of the <envar>GUACAMOLE_HOME</envar> you provide.</para>
+ <para>Because the Docker image's <envar>GUACAMOLE_HOME</envar> environment variable must
+ point to a directory <emphasis>within the container</emphasis>, you will need to
+ expose your custom <envar>GUACAMOLE_HOME</envar> to the container using the
+ <option>-v</option> option of <command>docker run</command>. The container
+ directory chosen can then be referenced in the <envar>GUACAMOLE_HOME</envar>
+ environment variable, and the image will handle the rest automatically:</para>
+ <informalexample>
+ <screen><prompt>$</prompt> <command>docker</command> run --name <replaceable>some-guacamole</replaceable> \
+ ...
+ <emphasis>-v <replaceable>/local/path</replaceable>:<replaceable>/some-directory</replaceable> \
+ -e GUACAMOLE_HOME=<replaceable>/some-directory</replaceable> \</emphasis>
+ -d -p 8080:8080 guacamole/guacamole</screen>
+ </informalexample>
+ </section>
<section xml:id="verifying-guacamole-docker">
<title>Verifying the Guacamole install</title>
<para>Once the Guacamole image is running, Guacamole should be accessible at