Guacamole docker compose
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