Merge pull request #362 from accoleon/master

Added Apache Guacamole stack
This commit is contained in:
Raúl Sánchez 2017-12-18 15:34:21 +01:00 committed by GitHub
commit 320b959ebd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 144 additions and 0 deletions

View File

@ -0,0 +1,19 @@
# Apache Guacamole
Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
We call it clientless because no plugins or client software are required.
Thanks to HTML5, once Guacamole is installed on a server, all you need to access your desktops is a web browser.
This service uses the official Apache [http://guacamole.incubator.apache.org](https://hub.docker.com/r/glyptodon/guacamole/) Guacamole image. It also uses the official MariaDB image as its backend.
Health checks are enabled on all services.
## How to use
Using all default settings will work. The MySQL root password is randomly generated and has "one time password" set.
After starting, the initial database setup will be executed by a runonce container.
The default login will be `guacadmin/guacadmin`.
This stack exposes Guacamole on port 8080 by default. You can use it as it is, or map a load balancer to it and not expose the port.
Once all containers are running, Guacamole is available on `http://[container_ip]:8080/`.
If the page is blank, try refreshing the page after 5-10 seconds, since the database container might still be initializing.

View File

@ -0,0 +1,49 @@
database-data:
image: busybox
labels:
io.rancher.container.start_once: 'true'
net: none
entrypoint: /bin/true
volumes:
- /var/lib/mysql
- /docker-entrypoint-initdb.d
database:
image: mariadb
environment:
MYSQL_DATABASE: ${guacamole_db}
MYSQL_ONETIME_PASSWORD: 'true'
MYSQL_PASSWORD: ${guacamole_password}
MYSQL_RANDOM_ROOT_PASSWORD: 'true'
MYSQL_USER: ${guacamole_user}
volumes_from:
- database-data
labels:
io.rancher.sidekicks: setup-get-db-script, database-data
setup-get-db-script:
image: glyptodon/guacamole:0.9.10-incubating
net: none
volumes_from:
- database-data
command:
- bash
- -c
- /opt/guacamole/bin/initdb.sh --mysql > /docker-entrypoint-initdb.d/initdb.sql
labels:
io.rancher.container.start_once: 'true'
guacd:
image: glyptodon/guacd:0.9.10-incubating
guacamole:
image: glyptodon/guacamole:0.9.10-incubating
environment:
MYSQL_DATABASE: ${guacamole_db}
MYSQL_HOSTNAME: database
MYSQL_PASSWORD: ${guacamole_password}
MYSQL_USER: ${guacamole_user}
links:
- guacd:guacd
ports:
- ${public_port}:8080/tcp
command:
- /bin/bash
- -c
- cd /usr/local/tomcat/webapps;rm -rf ROOT/; ln -s guacamole.war ROOT.war; /opt/guacamole/bin/start.sh;

View File

@ -0,0 +1,68 @@
version: '2'
services:
guacamole:
scale: 1
health_check:
healthy_threshold: 2
response_timeout: 2000
port: 8080
unhealthy_threshold: 3
initializing_timeout: 60000
interval: 2000
strategy: recreate
request_line: GET "/guacamole" "HTTP/1.0"
reinitializing_timeout: 60000
guacd:
scale: 1
health_check:
healthy_threshold: 2
response_timeout: 2000
port: 4822
unhealthy_threshold: 3
initializing_timeout: 60000
interval: 2000
strategy: recreate
reinitializing_timeout: 60000
setup-get-db-script:
scale: 1
database:
scale: 1
health_check:
healthy_threshold: 2
response_timeout: 2000
port: 3306
unhealthy_threshold: 3
initializing_timeout: 60000
interval: 2000
strategy: recreate
reinitializing_timeout: 60000
.catalog:
name: "apache-guacamole"
version: "0.1-rancher1"
description: " Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH."
minimum_rancher_version: v0.46.0
questions:
- variable: "guacamole_db"
label: "MySQL Database Name"
description: "Your MYSQL guacamole database name"
default: "guacamole_db"
required: true
type: "string"
- variable: "guacamole_user"
label: "MySQL Database User"
description: "Your MYSQL guacamole user name"
required: true
default: "guacamole_user"
type: "string"
- variable: "guacamole_password"
label: "MySQL Database Password"
description: "Your MYSQL guacamole user password. Defaults to \"guacamole_password\""
required: true
default: "guacamole_password"
type: "password"
- variable: "public_port"
label: "Public Port"
description: "The public port that Guacamole listens on, defaults to 8080"
required: true
default: 8080
type: "int"

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,8 @@
name: Apache Guacamole
description: |
Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
version: 0.1-rancher1
category: Applications
license:
maintainer: "Kevin Xu <accoleon@gmail.com>"
projectURL: https://github.com/glyptodon/guacamole-docker