Docker MajorDoMo
Модератор: immortal
- champloo
- Сообщения: 42
- Зарегистрирован: Ср май 22, 2019 12:07 pm
- Благодарил (а): 2 раза
- Поблагодарили: 15 раз
Re: Docker MajorDoMo
Раз тема хоть немного была жива.
Попробую на днях обкатать новый патч.
Сейчас попробую поговорить с разработчиками найти все места где меняется код и вынести всё таки в ядро образ и причесать для более удобной работы.
Попробую на днях обкатать новый патч.
Сейчас попробую поговорить с разработчиками найти все места где меняется код и вынести всё таки в ядро образ и причесать для более удобной работы.
By design...
-
- Сообщения: 5
- Зарегистрирован: Пн сен 28, 2020 10:03 pm
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
Re: Docker MajorDoMo
Доброго дня!
Развлекаюсь тут на досуге с docker. Пытаюсь собрать стек по инструкции.
из репозитория.
Первое с чем столкнулся это не возможность создания БД, т.к переменные из файла config.env не предаются в контейнер mysql. Оказалось надо сохранить файл, как ".env", а не "config.env" и соответственно изменить в Makefile файле строчку "cnf ?= config.env" на "cnf ?= .env"
Следующий шаг выдать пользователю mysql (в моем случае majordomo) привилегии: SUPER, RELOAD (выдавал из phpmyadmin)
Ну и на последок mosquitto.
Надо добавить в mosquitto.conf "/" в конце persistence_location /mosquitto/data/
Развлекаюсь тут на досуге с docker. Пытаюсь собрать стек по инструкции.
из репозитория.
Первое с чем столкнулся это не возможность создания БД, т.к переменные из файла config.env не предаются в контейнер mysql. Оказалось надо сохранить файл, как ".env", а не "config.env" и соответственно изменить в Makefile файле строчку "cnf ?= config.env" на "cnf ?= .env"
Потом избавился от строк в init-db в Makefile файле:Показать
@$(call docker_compose, exec mysql mysqladmin -p$(MYSQL_ROOT_PASSWORD) drop $(MYSQL_DATABASE))
@$(call docker_compose, exec mysql mysqladmin -p$(MYSQL_ROOT_PASSWORD) create $(MYSQL_DATABASE))
@$(call docker_compose, exec mysql mysqladmin -p$(MYSQL_ROOT_PASSWORD) create $(MYSQL_DATABASE))
Так они приводили:Показать
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
Команда из phpmyadmin, если кто через консоль выдавать будет:Показать
REVOKE ALL PRIVILEGES ON *.* FROM 'majordomo'@'%'; REVOKE GRANT OPTION ON *.* FROM 'majordomo'@'%'; GRANT RELOAD, SUPER ON *.* TO 'majordomo'@'%' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
Ошибка в логах контейнера:Показать
Error saving in-memory database, unable to open /mosquitto/datamosquitto.db.new for writing
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Docker MajorDoMo
Как запускать в докере Python сценарии?
Создаем сценарий и вставляем такой код: shell_exec("версия питона путь к срипту/имя вашего скрипта.py");
Вот мой пример
Для того, чтобы в докере работал запуск питоновских скриптов, необходимо установить python-requests, если этого не сделать, то получим вот такую ошибку No module named 'requests'
Если не стоит Python?
apt install python
Как установить в докер python-requests?
Сперва нужно узнать какая версия python выбрана по дефолту, а после ставим python-requests согласно указанной версии Python по дефолту. Узнать дефолтную версию питона можно так:
python –version
Если у нас стоит дефолтная версия Python 2:
apt-get update && apt-get install python-requests
Если у нас стоит дефолтная версия Python 3:
apt-get update && apt-get install python3-requests
Установить в обе версии:
apt-get install python-requests python3-requests
Если же нужно установить библиотеки через pip:
apt-get update && apt-get install python3-pip && pip3 install requests
Команды можно запускать через терминал докера
Создаем сценарий и вставляем такой код: shell_exec("версия питона путь к срипту/имя вашего скрипта.py");
Вот мой пример
СпойлерПоказать
СпойлерПоказать
Если не стоит Python?
apt install python
Как установить в докер python-requests?
Сперва нужно узнать какая версия python выбрана по дефолту, а после ставим python-requests согласно указанной версии Python по дефолту. Узнать дефолтную версию питона можно так:
python –version
Если у нас стоит дефолтная версия Python 2:
apt-get update && apt-get install python-requests
Если у нас стоит дефолтная версия Python 3:
apt-get update && apt-get install python3-requests
Установить в обе версии:
apt-get install python-requests python3-requests
Если же нужно установить библиотеки через pip:
apt-get update && apt-get install python3-pip && pip3 install requests
Команды можно запускать через терминал докера
СпойлерПоказать
Последний раз редактировалось Divan Вс ноя 15, 2020 1:56 pm, всего редактировалось 1 раз.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Docker MajorDoMo
Рабочие конфиги для работы приватных навыков модуля yandex home. Смотреть видео
Установить nano в Docker
# apt install nano
Если вдруг случайно затерли базовый конфиг
Конфиг для приватных навыков модуля yandex home
Установить nano в Docker
# apt install nano
Если вдруг случайно затерли базовый конфиг
Код: Выделить всё
server {
listen 8888 default_server;
listen [::]:8888 default_server;
index index.php index.html index.htm ;
server_name 127.0.0.1 localhost _;
set $MAGE_ROOT /var/www/html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root $MAGE_ROOT;
charset utf-8;
location ~ \.html {
if (!-e $request_filename){
rewrite ^(.*)$ /nf.php;
}
}
location ~ [^/]\.php(/|$) {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
}
location /api {
rewrite ^(.*)$ /api.php;
}
location ~ /\.ht {
deny all;
}
location /config.php {
deny all;
}
location /debmes.txt {
deny all;
}
}
Код: Выделить всё
server {
listen 9443;
server_name 127.0.0.1 localhost _;
root /var/www/html/webhooks;
location /modules/yandexhome/token.php {
proxy_pass http://127.0.0.1:8888/modules/yandexhome/token.php;
}
location /modules/yandexhome/authorize.php {
proxy_pass http://127.0.0.1:8888/modules/yandexhome/authorize.php;
}
location /modules/yandexhome/smarthome.php {
proxy_pass http://127.0.0.1:8888/modules/yandexhome/smarthome.php;
}
location /modules/yandexhome/img {
proxy_pass http://127.0.0.1:8888/modules/yandexhome/img;
}
location /modules/yandexhome/css {
proxy_pass http://127.0.0.1:8888/modules/yandexhome/css;
}
ssl on;
ssl_certificate /var/www/html/SSLCerts/VWx5Nb/fullchain.pem;
ssl_certificate_key /var/www/html/SSLCerts/VWx5Nb/privkey.pem;
access_log /var/log/nginx/webhooks.access.log;
error_log /var/log/nginx/webhooks.error.log;
}
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
-
- Сообщения: 83
- Зарегистрирован: Сб май 17, 2014 2:52 am
- Откуда: Новосибирск
- Благодарил (а): 10 раз
- Поблагодарили: 4 раза
Re: Docker MajorDoMo
Здравствуйте.
Вопрос знатокам
MajorDoMo в докере на малине.
Хочу создать контейнер с базой и вынести на другой сервер, как подключиться к этому контейнеру, какие проблемы могут быть?
Вопрос знатокам
MajorDoMo в докере на малине.
Хочу создать контейнер с базой и вынести на другой сервер, как подключиться к этому контейнеру, какие проблемы могут быть?
-
- Сообщения: 19
- Зарегистрирован: Сб дек 21, 2019 9:36 pm
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: Docker MajorDoMo
вместо кучи proxypass на каждый файл, хватит одного на директорию
Код: Выделить всё
location /modules/yandexhome/ {
proxy_pass http://127.0.0.1:8888/modules/yandexhome;
}
-
- Сообщения: 2
- Зарегистрирован: Пн дек 07, 2020 6:05 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Docker MajorDoMo
Здравствуйте!
Установил и настроил систему из докер-хаба: "nick7zmail/majordomo".
При обновлении образа не будет ли удалена база данных? И где она хранится (настройки по-умолчанию)?
Установил и настроил систему из докер-хаба: "nick7zmail/majordomo".
При обновлении образа не будет ли удалена база данных? И где она хранится (настройки по-умолчанию)?
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Docker MajorDoMo
Зачем вам обновлять образ? Там только настроены приватные навыки.zagorodnov писал(а): ↑Пн дек 07, 2020 6:14 pmЗдравствуйте!
Установил и настроил систему из докер-хаба: "nick7zmail/majordomo".
При обновлении образа не будет ли удалена база данных? И где она хранится (настройки по-умолчанию)?
Если принципиально хотите обновить образ, то придется сделать следующее:
1) Поставить модуль phpmyadmin, сделать экспорт базы или сделать копию базы с помощью скрипта (лучше сделать оба варианта, как подстраховка)
Код: Выделить всё
$filename = '/var/www/html/backup/db_terminal_backup.sql';
$mysqlDumpPath = "/usr/bin/mysqldump";
$mysqlDumpParam = " --user=" . DB_USER . " --password=" . DB_PASSWORD;
$mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME;
if (file_exists($filename)) rename($filename, $filename . '.prev');
exec($mysqlDumpPath . $mysqlDumpParam . " > " . $filename);
Выключаете докер, удаляете контейнер, потом удаляете образ и все делаете по новой. Удалить образ без удаления контейнера нельзя, так как образ напрямую зависит от контейнера. Далее удаляете все данные которые выгрузил докер при включении и копируете то, что было у вас + импортируете базу через phpmyadmin.
- За это сообщение автора Divan поблагодарил:
- zagorodnov (Вт дек 08, 2020 6:04 am)
- Рейтинг: 1.16%
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
-
- Сообщения: 2
- Зарегистрирован: Пн дек 07, 2020 6:05 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Docker MajorDoMo
Спасибо вам за ответ!Зачем вам обновлять образ? Там только настроены приватные навыки.
Я исхожу из того, что если разработчик обновляет образ, то вносит в него какие-то улучшения и исправления ошибок.
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Docker MajorDoMo
Это про образ от nick7zmail
Если на странице сценария в подсказке "Как запустить?" увидите повторяющиеся порты, как на скриншоте, то нужно сделать следующее.
Открываем файлик load_settings.php (он лежит в корне /var/www/html)
Находим строчку (115 строчка)
и меняем на
PS: Обратите внимание, что имеются два вида образа мажордом в докере, один образ от nick7zmail и второй от A-SOM.
Если нужны приватные навыки, то нужно использовать образ от nick7zmail
Если на странице сценария в подсказке "Как запустить?" увидите повторяющиеся порты, как на скриншоте, то нужно сделать следующее.
СпойлерПоказать
Находим строчку (115 строчка)
Код: Выделить всё
Define('SERVER_URL', 'http://' . $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT']);
Код: Выделить всё
Define('SERVER_URL', 'http://' . $_SERVER['HTTP_HOST'] );
PS: Обратите внимание, что имеются два вида образа мажордом в докере, один образ от nick7zmail и второй от A-SOM.
Если нужны приватные навыки, то нужно использовать образ от nick7zmail
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB