Развертывание Guacamole в Docker на Ubuntu серверв связке с MAria Db
Устанавливаем Docker и DockerCompose на сервер с мана на официальной странице
Далее ставим Portainer для удобства администрирования
Разворачиваем стэк при помощи следующего compose файла
# Use root/example as user/password credentials
version: '3.1'
services:
db:
image: mariadb
restart: always
environment:
MARIADB_ROOT_PASSWORD: 6508699
adminer:
image: adminer
restart: always
ports:
- 8070:8080
Сам Guacomole состоит из трех контейнеров - это
1.guacamole/guacd - Сам Демон-ядро
2.guacamole/guacamole - Сама вэб морда
3.Поднятый выше контейнер базы данных
После поднятия базы - заходим в вебморду adminer и выполняем SQL скрипт
CREATE DATABASE guacamole_db;
CREATE USER 'guacamole_user'@'%' IDENTIFIED BY 'StrongPassw0rd';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'%';
FLUSH PRIVILEGES;
Этот скрипт создаст саму базу и пользователя с необходимыми правами
Далее нужно извлечь скрипт, который наполнит созданную базу таблицами и установит связи, я этого получаем скрипт из контейнера
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
Этот файл (initdb.sql) извлечется в папку откуда выполнялась команда
Далее копируем этот файл любыми способами внутрь контейнера либо через docker cp либо через Volume примаунтиные к контейнерам. Для этого заходим в свойства контейнера и смотрим какой Volume примаунтинен к контейнеру с MariaDB. Проваливаемся в него и видим адрес на хосте, который примаунтивается в адрес в контейнере. Далее идем на хост и даем команду
cp адрес_где_находится_initialdb адрес_который_маунтится_в_контейнер
Подключаемся к консоли контейнера MariaDb, переходим в каталог со скриптом (это адрес куда маунтится Volume в свойствах контейнера) и запускаем выполнение этого скрипта командой.
cat initdb.sql | sudo mariadb -u root -p guacamole_db
Убеждаемся, что таблицы появились
Далее ставим контейнер демона. Указываем ту же сеть , что и у БД.
docker run -d \
--name some-guacd \
--network mariadb_default \
guacamole/guacd
Далее поднимаем сам контейнер Guacamole
docker run -d \
--name guacamole \
--network mariadb_default \
-e GUACD_HOSTNAME=some-guacd \
-e MYSQL_HOSTNAME=mariadb-db-1 \
-e MYSQL_DATABASE=guacamole_db \
-e MYSQL_USER=guacamole_user \
-e MYSQL_PASSWORD=StrongPassw0rd \
-p 8080:8080 \
guacamole/guacamole
Доступ будет по ссылке http://192.168.1.200:8080/guacamole/
Стандартный логин и пароль guacadmin
Логинимся и добавляем нового пользователя и подключения