# subscription-manager register
# subscription-manager attach --auto
# yum update
# yum install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool libuuid-devel uuid-devel
# yum install ffmpeg-devel freerdp-devel pango-devel  libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel openssl-devel libwebp-devel
# git clone git@github.com:apache/guacamole-server.git
# cd guacamole-server/
# autoreconf -fi
# and now we find all the missing redhat 7 packages

At this point I looked for the Redhat7 docker rpm to download and did not find it. Decided life was too short and went the easy route with a clean debian machine.

Prereqs and Docker install

https://docs.docker.com/engine/install/debian/

apt-get remove docker docker-engine docker.io containerd runc

apt-get install     ca-certificates     curl     gnupg     lsb-release

curl -fsSL https://download.docker.com/linux/debian/gpg |  gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo   "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian  $(lsb_release -cs) stable" |  tee /etc/apt/sources.list.d/docker.list > /dev/null

apt-get update

apt-get install docker-ce docker-ce-cli containerd.io

Database Creation and Init

https://guacamole.apache.org/doc/gug/guacamole-docker.html#

docker run -d --name some-mysql -e MYSQL_ROOT_PASSWORD="xxxxx" -p 3306:3306 mysql

mysql -p  -u root -h <ip address>  not sure why local host would not work

MySQL [(none)]> create database guacamole_db;
MySQL [(none)]> use guacamole_db;
MySQL [guacamole_db]> CREATE USER 'guacamole_user'@'%' IDENTIFIED BY 'xxxx';
MySQL [guacamole_db]> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'guacamole_user'@'%' WITH GRANT OPTION;
MySQL [guacamole_db]> flush privileges;
MySQL [guacamole_db]> EXIT;

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

mysql -p  -u guacamole_user -h 10.40.2.110 guacamole_db < initdb.sql

Run guacd container and guacamole container

docker run --name some-guacd -d guacamole/guacd

docker run -d --name some-guacamole  --link some-guacd:guacd   --link some-mysql:mysql -e MYSQL_DATABASE=guacamole_db -e MYSQL_USER=guacamole_user -e MYSQL_PASSWORD=xxxx  -p 8080:8080 guacamole/guacamole

Check

root@docker1:~# docker ps 
CONTAINER ID   IMAGE                 COMMAND                  CREATED             STATUS                 PORTS                                                  NAMES
8efa35b0829a   guacamole/guacamole   "/opt/guacamole/bin/…"   30 minutes ago      Up 30 minutes          0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              some-guacamole
80a5bd80f893   mysql                 "docker-entrypoint.s…"   About an hour ago   Up About an hour       0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   some-mysql
adbd3d22ff6d   guacamole/guacd       "/bin/sh -c '/usr/lo…"   3 hours ago         Up 3 hours (healthy)   4822/tcp                                               some-guacd