Code Monkey home page Code Monkey logo

docker-guacamole's Introduction

โš ๏ธThis is a fork of oznu/docker-guacamole, updated to latest guacamole, tomcat 9 (guacamole is not compatible with tomcat10), postgresql, postgresql jdbc driver, and s6_overlay.

There is a bug when updating from oznu's container (running guacamole 1.2.0 and postgresql 9) to this one. If something does not work, delete the /config folder and relaunch the container. Be careful, by doing so, you will lose your previous setup. I am trying to find a solution still.

What's new

2022-01-31 - s6 overlay 3.0.0.2 has been released, that corrects a bug in the management of environment variables. Images 1.4.0, 1.4.0-s6_v3 and latest have been updated to this version, as well as updated to Tomcat 9.0.58.

2022-01-29 - I noticed a typo in the Dockerfile that introduced a bug with Postgres JDBC Driver. Fixed in all tags. Issue #2

2022-01-27 - updated to s6 overlay 3.0 and tomcat 9.0.58

2022-01-03 - updated to version 1.4.0

2022-02-07 - updated to version Postegres JDBC driver 42.3.2

2022-02-22 - updated to s6 overlay 3.0.0.2-2

2022-03-01 - updated to PostgresJDBC 42.3.3, tomcat 9.0.59, arm64 not supported by tomcat 9.0.59 arm64 images have been added back!

2022-03-08 - updated to S6 Overlay 3.1.0.1

2022-03-16 - updated to tomcat 9.0.60, and fixed an issue that prevented the container to start on arm64

Available tags

1.4.0 latest , version 1.4.0, based on tomcat:9.0.30-jre11, using s6 overlay 3.1.0.1.

1.4.0-s6_v3 updated to s6 overlay 3.0.0.0 and tomcat:9.0.58-jre11 (note: This image is built on a custom build of s6 overlay. It will be renamed as latest when s6 overlay is fixed and I can use the release tarballs.)

1.3.0 , version 1.3.0, based on tomcat:9.0.56-jre11

Auto promo

If Guacamole is useful to you, do not hesitate to support the great work of the Apache Foundation.

On a side note, running the server I use to build these images, researching update info, maintaining the images, takes quite some time and a little money. I'll gladly accept a coffee!

Docker Guacamole

A Docker Container for Apache Guacamole, a client-less remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH over HTML5.

IMAGE ALT TEXT

This container runs the guacamole web client, the guacd server and a postgres database.

Usage

docker run \
  -p 8080:8080 \
  -v </path/to/config>:/config \
  abesnier/guacamole

Parameters

The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side.

  • -p 8080:8080 - Binds the service to port 8080 on the Docker host, required
  • -v /config - The config and database location, required
  • -e EXTENSIONS - See below for details.

Enabling Extensions

Extensions can be enabled using the -e EXTENSIONS variable. Multiple extensions can be enabled using a comma separated list without spaces.

For example:

docker run \
  -p 8080:8080 \
  -v </path/to/config>:/config \
  -e "EXTENSIONS=auth-ldap,auth-duo"
  abesnier/guacamole

Currently the available extensions are:

You should only enable the extensions you require, if an extensions is not configured correctly in the guacamole.properties file it may prevent the system from loading. See the official documentation for more details.

Default User

The default username is guacadmin with password guacadmin.

Windows-based Docker Hosts

Mapped volumes behave differently when running Docker for Windows and you may encounter some issues with PostgreSQL file system permissions. To avoid these issues, and still retain your config between container upgrades and recreation, you can use the local volume driver, as shown in the docker-compose.yml example below. When using this setup be careful to gracefully stop the container or data may be lost.

version: "3"
services:
  guacamole:
    image: abesnier/guacamole
    container_name: guacamole
    volumes:
      - postgres:/config
    ports:
      - 8080:8080
volumes:
  postgres:
    driver: local

Something's not working, what to do?

The container fails to start properly

If the docker seems to not start properly, check the logs with docker logs <container_name>.

If you see lines like this one: postgres: could not access the server configuration file "/config/postgres/postgresql.conf": No such file or directory, this means that the configuration volume could not be mounted properly.

If that is the case, make sure to start the container as root. This will force the creation of the config folder.

docker run \
  -p 8080:8080 \
  -u root \
  -v </path/to/config>:/config \
  abesnier/guacamole

or in docker-compose.yml:

version: "3"
services:
  guacamole:
    image: abesnier/guacamole
    container_name: guacamole
    user: root
    volumes:
      - </path/to/config>:/config
    ports:
      - 8080:8080

Back up the config folder and start again

Well, I must admit, I managed to break a few things here and there nevertheless... The easiest way to correct issues is to stop the container, delete the config folder, and restart the container.

But this has the side effect of deleting your stored users and connections as well.

You can backup and restore the database with the following command (assuming your container is named guacamole):

Backup: docker exec -it guacamole bash -c "pg_dump -U guacamole -F t guacamole_db > guacamole_db_backup.tar"

This creates a guacamole_db_backup.tar in your config directory that you need to save somewhere else.

Now stop the container, delete the config folder, and restart the container.

To restore the database, copy the backup file in your mounted config folder, and run docker exec -it guacamole bash -c "pg_restore -d guacamole_db guacamole_db_backup.tar -c -U guacamole". You can now login to Guacamole with your user data and should find your connections as you left them.

Report an issue with the image

Have a look at the Github repo, and the Issuespage.

Official support pages

If you believe the issue is with Guacamole and not the docker image, have a lok at the mailing list for general support, and if you believe there is a bug, use the bug tracker to report it.

And of course, don't forget to look at the official documentation.

License

Copyright (C) 2017-2020 oznu

Copyright (C) 2021 abesnier

Apache Guacamole is released under the Apache License version 2.0.

Extensions uses thrid-party modules. To consult the licensing for each module, download the extension from https://guacamole.apache.org/releases/1.4.0/, extract it, and check the content of the bundled directory.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

docker-guacamole's People

Contributors

abesnier avatar oznu avatar fbartels avatar zenjabba avatar stevemk14ebr avatar e-alfred avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.