On Wed, May 9, 2018 at 11:57 AM, Joachim Lindenberg <joac...@lindenberg.one> wrote:
> Hello, > > I assume I will have to upgrade guacamole in the near future. Rather than > updating all dependencies and recompiling, I´d actually favor to use > docker. Now initially I decided against docker because I didn´t like the > database… > Well, you don't *have* to, but we're resolving a decent number of issues and adding features along the way, so if you want the bug fixes and features, you'll need to upgrade. And, yes, Docker is designed to ease this process. > I am also running mailcow-dockerized (and the database drives up memory > utilization L). mailcow-dockerized uses lots of containers plus a central > configuration directory (which is filled via git, i.e. my configuration > changes are locally merged with central ones). I am wondering whether you > can/want to adopt similar separation and offer separate containers for > guacd (as already), guacamole, and database (could be a choice of different > database including lightweights J). > Yes, best practices for containers is to run a single workload per container, so you should run your guacd instance, guacamole-client (Tomcat + Guacamole Client + Extensions), and Database in separate instances. > As you already have an extension concept that wires guacamole and the > database, I guess it should be possible to expose or copy the relevant > directories/configuration from one container to the other and have that > picked up. Ideally one can run not just one extension but multiple using > distinct containers. Or edit the composition not to load a database. > Docker does allow you to make directories available from your host to the containers, which also means you could share the configuration amongst the various containers. If you look at the very last section of the Guacamole Manual on Docker (http://guacamole.apache.org/doc/gug/guacamole-docker.html) you'll see an example of using the "-v" flag to forward a directory through to a container. However, I'm not sure what you mean by running "multiple extensions using distinct containers" - this doesn't make sense to me. All of your extensions need to be present in the container where Tomcat is running the Guacamole Client. You could run a separate instance of the Tomcat client for each extension, but these will not be magically linked together - you'll have one container with one extension (JDBC, for example) running, another container with another one, etc., and different clients that behave differently. If you want to use multiple extensions with the Guacamole Client, you should run all of these extensions in a single container with the Guacamole Client. -Nick