Hi Mike,

here is the reduced compose.yml (see below)

With your hint about the "GUACAMOLE_HOME" i try to set a new path "/opt/config" -> The error has changed to (find: ‘/opt/*config/*lib’: No such file or directory). After create an lib dir in the config folder, the container boot up, but the container can't load the jdbc-driver i think, because it is missing in "$GUACAMOLE_HOME/lib". So how can i obtain a custom branding file via the "$GUACAMOLE_HOME/extensions/" dir via a docker-volume from the host? This compose-file was used with official images guacamole 1.5.3,1.5.4 and 1.5.5 without problems and changes.

*guacamole  | ### Cause: java.sql.SQLException: Retrieval of database credentials failed.* guacamole  | 23:24:14.153 [http-nio-8080-exec-9] WARN o.a.g.e.AuthenticationProviderFacade - The "postgresql" authentication provider has encountered an internal error which will halt the authentication process. If this is unexpected or you are the developer of this authentication provider, you may wish to enable debug-level logging. If this is expected and you wish to ignore such failures in the future, please set "skip-if-unavailable: postgresql" within your guacamole.properties. guacamole  | 23:24:14.153 [http-nio-8080-exec-9] INFO o.a.g.a.b.s.InMemoryAuthenticationFailureTracker - Authentication has failed for address "x.x.x.x" (current total failures: 4/5). guacamole  | 23:24:14.153 [http-nio-8080-exec-9] ERROR o.a.g.rest.RESTExceptionMapper - Unexpected internal error: *guacamole  | ### Error querying database.  Cause: java.sql.SQLException: Retrieval of database credentials failed.* guacamole  | ### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml guacamole  | ### The error may involve org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
guacamole  | ### The error occurred while executing a query

docker-compose.yml (old)

services:
  guacd:
    env_file: .env
    build:
      context: ./guacamole-server
      dockerfile: Dockerfile
    container_name: guacd
    hostname: guacd
    restart: unless-stopped
    environment:
      GUACD_LOG_LEVEL: debug
    volumes:
      - ./userfiles:/drive:rw
      - ./records:/record:rw
    networks:
      - guacamole_network

  guacamole:
    build:
      context: ./guacamole-client
      dockerfile: Dockerfile
    container_name: guacamole
    hostname: guacamole
    restart: unless-stopped
    env_file: .env
    volumes:
      - ./config:/opt/local:ro
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - guacd
    environment:
      GUACAMOLE_HOME: /opt/local
      GUACD_LOG_LEVEL: debug
      TZ: Europe/Berlin
      ALLOWED_LANGUAGES: de, en
      REMOTE_IP_VALVE_ENABLED: true
      GUACD_HOSTNAME: guacd
      POSTGRESQL_HOSTNAME: pg-host
      POSTGRESQL_PORT: 5432
      POSTGRESQL_DATABASE: guacamole_db
      POSTGRESQL_USER: guacamole_user
      POSTGRESQL_PASSWORD: xxx
      POSTGRESQL_SSL_MODE: require
      TOTP_ENABLED: true
      EXTENSION_PRIORITY: '*, openid, saml'
      SKIP_IF_UNAVAILABLE: 'openid,saml'
      SAML_STRICT: false
      SAML_IDP_METADATA_URL: https://saml.domain.tld
      SAML_IDP_URL: https://saml.domain.tld
      SAML_ENTITY_ID: https://domain.tld
      SAML_CALLBACK_URL: https://domain.tld/
      OPENID_AUTHORIZATION_ENDPOINT: https://openid.domain.tld
      OPENID_CLIENT_ID: xxx
      OPENID_ISSUER: https://openid.domain.tld/
      OPENID_JWKS_ENDPOINT: https://openid.domain.tld/
      OPENID_REDIRECT_URI: https://domain.tfl/
      OPENID_USERNAME_CLAIM_TYPE: username
    links:
      - guacd
    labels:
      traefik.docker.network: proxy
      traefik.enable: "true"
      ...
    networks:
      - guacamole_network
      - proxy

networks:
  proxy:
    external: true
  guacamole_network:
    external: false

Am 16.02.2025 um 18:26 schrieb Michael Jumper:
Can you share your full docker-compose.yml, redacted as necessary?

Custom extensions and guacamole.properties continue to be supported through the same mechanism as past releases (pointing the GUACAMOLE_HOME environment variable at the directory containing your configuration). There are now additional mechanisms that are simpler and more flexible, but nothing that was supported for the Docker images in 1.5.5 has been removed.

- Mike

On 2/16/25 8:28 AM, Tobias Feller | OPC wrote:
Hi Mike,

i found the problem.

i had an docker volume set up:

  ${BASEDIR}/config:/opt/local:ro

where my custom-branding extension and my guacamole.properties resist:

ls config
extensions  guacamole.properties

seems that this is not supported any more in this style, on 1.5.5 it was still working.

where can i put this files now? Is there a new location for this? Or is the "mkdir /opt/local" only missing in the Dockerfile?

guacamole@guacamole:/opt$ ls
guacamole  java

Thanks,

Tobias

Am 15.02.2025 um 17:41 schrieb Michael Jumper:
Can you send your full docker-compose.yml (redacted as necessary)?

The only issue I see with what you've shown below is that the copy of guacamole-server is being taken directly from the "staging/1.6.0" branch and thus will not have the pending changes from previously mentioned PR:

https://github.com/apache/guacamole-server/pull/573

- Mike

On 2/15/25 1:04 AM, Tobias Feller | OPC wrote:
Hi Mike,

i have testet the staging/1.6.0 (docker), but have some problems to bring it up.

What i have done...

git clone --single-branch --branch staging/1.6.0 https://github.com/ apache/guacamole-server.git git clone --single-branch --branch staging/1.6.0 https://github.com/ apache/guacamole-client.git

Customize my working docker-compose.yml file from image:

#image: guacamole/guacd:latest
build:
       context: ./guacamole-server
       dockerfile: Dockerfile

#image: guacamole/guacamole:latest
build:
       context: ./guacamole-client
       dockerfile: Dockerfile

docker compose build

both images was build succesful, but after:

docker compose up

the client-image didn't boot up...

guacd      | guacd[1]: INFO:    Guacamole proxy daemon (guacd) version 1.6.0 started guacd      | guacd[1]: DEBUG:   Successfully bound AF_INET socket to host 0.0.0.0, port 4822
guacd      | guacd[1]: INFO:    Listening on host 0.0.0.0, port 4822
*guacamole  | find: ‘/opt/local/lib’: No such file or directory
*guacamole exited with code 0

Do i need to customize something in the Dockerfile?

Thanks.

Best regards,

Tobias

Am 15.02.2025 um 08:51 schrieb Michael Jumper:
Well, I'm no longer able to reproduce the issues I was encountering before. Performance of all protocols seems to be excellent when using a build with:

* Current "staging/1.6.0" for guacamole-client
* The proposed fixes for guacamole-server: https://github.com/ apache/ guacamole-server/pull/573

Using purely the above (no third-party images), is anyone still encountering issues? If so, what does your deployment look like in terms of resources and software?

If not, then we may well be good to go...

- Mike



--

OPC® cardsystems GmbH
Phone: +49 651 8408-0  | Fax: +49 651 8408-150
E-Mail:tfel...@opc.de | Internet:www.opc.de
Geschäftsführer: Dipl.-Ing. (FH) Klaus Dieter Schömer
Registergericht: Amtsgericht Wittlich | HRB-Nr.: 3903

Reply via email to