Guacamole docker compose: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
|  (Created page with "  Create the ${HOME}/docker-stack/guacamole/docker-compose.yml file:   # networks  # create a network 'guacnetwork_compose' in mode 'bridged'  networks:    guacnetwork_compose:      driver: bridge    # services  services:    # guacd    guacd:      container_name: guacd_compose      image: guacamole/guacd      networks:        - guacnetwork_compose      restart: always      volumes:      - ./drive:/drive:rw      - ./record:/record:rw    # postgres    postgres:      contai...") | No edit summary | ||
| Line 1: | Line 1: | ||
| Create a folder for the project | |||
|  mkdir ${HOME}/docker-stack | |||
|  cd ${HOME}/docker-stack | |||
| Initialize the database | |||
|  mkdir -p ${HOME}/docker-stack/guacamole/init | |||
|  chmod -R +x ${HOME}/docker-stack/guacamole/init | |||
|  docker run --rm guacamole/guacamole:1.5.3 /opt/guacamole/bin/initdb.sh --postgresql > ${HOME}/docker-stack/guacamole/init/initdb.sql | |||
| Create the ${HOME}/docker-stack/guacamole/docker-compose.yml file: | Create the ${HOME}/docker-stack/guacamole/docker-compose.yml file: | ||
|  nano ${HOME}/docker-stack/guacamole/docker-compose.yml | |||
| Paste the following content into it : | |||
|  version: '3.9' | |||
|   # networks |   # networks | ||
|   # create a network ' |   # create a network 'guacamole_net' in mode 'bridged' | ||
|   networks: |   networks: | ||
|     guacamole_net: | |||
|       driver: bridge |       driver: bridge | ||
|    haproxy_net: | |||
|      external: true | |||
|   # services |   # services | ||
| Line 13: | Line 29: | ||
|     # guacd |     # guacd | ||
|     guacd: |     guacd: | ||
|       container_name:  |       container_name: guacamole_backend | ||
|       image: guacamole/guacd |       image: guacamole/guacd:1.5.3 | ||
|       networks: |       networks: | ||
|         guacamole_net: | |||
|       restart: always |       restart: always | ||
|       volumes: |       volumes: | ||
|       - ./drive:/drive:rw |       - ./drive:/drive:rw | ||
|       - ./record:/ |       - ./record:/var/lib/guacamole/recordings:rw | ||
|     # postgres |     # postgres | ||
|     postgres: |     postgres: | ||
|       container_name:  |       container_name: guacamole_database | ||
|       environment: |       environment: | ||
|         PGDATA: /var/lib/postgresql/data/guacamole |         PGDATA: /var/lib/postgresql/data/guacamole | ||
|         POSTGRES_DB: guacamole_db |         POSTGRES_DB: guacamole_db | ||
|         POSTGRES_PASSWORD: ' |         POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}' | ||
|         POSTGRES_USER:  |         POSTGRES_USER: '${POSTGRES_USER}' | ||
|       image: postgres:15. |       image: postgres:15.0 | ||
|       networks: |       networks: | ||
|         guacamole_net: | |||
|       restart: always |       restart: always | ||
|       volumes: |       volumes: | ||
|       - ./init:/docker-entrypoint-initdb.d: |       - ./init:/docker-entrypoint-initdb.d:ro | ||
|       - ./data:/var/lib/postgresql/data: |       - ./data:/var/lib/postgresql/data:rw | ||
|     # guacamole |     # guacamole | ||
|     guacamole: |     guacamole: | ||
|       container_name:  |       container_name: guacamole_frontend | ||
|       depends_on: |       depends_on: | ||
|       - guacd |       - guacd | ||
| Line 47: | Line 62: | ||
|       environment: |       environment: | ||
|         GUACD_HOSTNAME: guacd |         GUACD_HOSTNAME: guacd | ||
|         POSTGRESQL_DATABASE: guacamole_db | |||
|         POSTGRESQL_HOSTNAME: postgres | |||
|         POSTGRESQL_PASSWORD: '${POSTGRES_PASSWORD}' | |||
|         POSTGRES_USER |         POSTGRESQL_USER: '${POSTGRES_USER}' | ||
|         POSTGRESQL_AUTO_CREATE_ACCOUNTS: true | |||
|       image: guacamole/guacamole |       image: guacamole/guacamole:1.5.3 | ||
|      links: | |||
|      - guacd | |||
|       networks: |       networks: | ||
|         -  |         - guacamole_net | ||
|        - haproxy_net | |||
|      restart: always | |||
|       volumes: |       volumes: | ||
|      - ./drive:/drive:rw | |||
|       - ./record:/var/lib/guacamole/recordings | |||
Revision as of 15:58, 30 March 2025
Create a folder for the project
mkdir ${HOME}/docker-stack
cd ${HOME}/docker-stack
Initialize the database
mkdir -p ${HOME}/docker-stack/guacamole/init
chmod -R +x ${HOME}/docker-stack/guacamole/init
docker run --rm guacamole/guacamole:1.5.3 /opt/guacamole/bin/initdb.sh --postgresql > ${HOME}/docker-stack/guacamole/init/initdb.sql
Create the ${HOME}/docker-stack/guacamole/docker-compose.yml file:
nano ${HOME}/docker-stack/guacamole/docker-compose.yml
Paste the following content into it :
version: '3.9'
# networks
# create a network 'guacamole_net' in mode 'bridged'
networks:
  guacamole_net:
    driver: bridge
  haproxy_net:
    external: true
# services
services:
  # guacd
  guacd:
    container_name: guacamole_backend
    image: guacamole/guacd:1.5.3
    networks:
      guacamole_net:
    restart: always
    volumes:
    - ./drive:/drive:rw
    - ./record:/var/lib/guacamole/recordings:rw
  # postgres
  postgres:
    container_name: guacamole_database
    environment:
      PGDATA: /var/lib/postgresql/data/guacamole
      POSTGRES_DB: guacamole_db
      POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}'
      POSTGRES_USER: '${POSTGRES_USER}'
    image: postgres:15.0
    networks:
      guacamole_net:
    restart: always
    volumes:
    - ./init:/docker-entrypoint-initdb.d:ro
    - ./data:/var/lib/postgresql/data:rw
    
  # guacamole
  guacamole:
    container_name: guacamole_frontend
    depends_on:
    - guacd
    - postgres
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRESQL_DATABASE: guacamole_db
      POSTGRESQL_HOSTNAME: postgres
      POSTGRESQL_PASSWORD: '${POSTGRES_PASSWORD}'
      POSTGRESQL_USER: '${POSTGRES_USER}'
      POSTGRESQL_AUTO_CREATE_ACCOUNTS: true
    image: guacamole/guacamole:1.5.3
    links:
    - guacd
    networks:
      - guacamole_net
      - haproxy_net
    restart: always
    volumes:
    - ./drive:/drive:rw
    - ./record:/var/lib/guacamole/recordings