Merge pull request #362 from accoleon/master
Added Apache Guacamole stack
This commit is contained in:
commit
320b959ebd
19
templates/apache-guacamole/0/README.md
Normal file
19
templates/apache-guacamole/0/README.md
Normal 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.
|
49
templates/apache-guacamole/0/docker-compose.yml
Normal file
49
templates/apache-guacamole/0/docker-compose.yml
Normal 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;
|
68
templates/apache-guacamole/0/rancher-compose.yml
Normal file
68
templates/apache-guacamole/0/rancher-compose.yml
Normal 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"
|
BIN
templates/apache-guacamole/catalogIcon-apache-guacamole.png
Normal file
BIN
templates/apache-guacamole/catalogIcon-apache-guacamole.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
8
templates/apache-guacamole/config.yml
Normal file
8
templates/apache-guacamole/config.yml
Normal 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
|
Loading…
x
Reference in New Issue
Block a user