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