Страница 10 из 17
Re: Docker MajorDoMo
Добавлено: Пт авг 28, 2020 5:35 pm
champloo
Раз тема хоть немного была жива.
Попробую на днях обкатать новый патч.
Сейчас попробую поговорить с разработчиками найти все места где меняется код и вынести всё таки в ядро образ и причесать для более удобной работы.
Re: Docker MajorDoMo
Добавлено: Пн окт 26, 2020 11:29 pm
sdenisb
Доброго дня!
Развлекаюсь тут на досуге с docker. Пытаюсь собрать стек по
инструкции.
из
репозитория.
Первое с чем столкнулся это не возможность создания БД, т.к переменные из файла config.env не предаются в контейнер mysql. Оказалось надо сохранить файл, как ".env", а не "config.env" и соответственно изменить в Makefile файле строчку "cnf ?= config.env" на "cnf ?= .env"
@$(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))
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
Следующий шаг выдать пользователю mysql (в моем случае majordomo) привилегии: SUPER, RELOAD (выдавал из 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;
Ну и на последок mosquitto.
Error saving in-memory database, unable to open /mosquitto/datamosquitto.db.new for writing
Надо добавить в mosquitto.conf "/" в конце persistence_location /mosquitto/data/
Re: Docker MajorDoMo
Добавлено: Сб ноя 14, 2020 1:17 am
Divan
Как запускать в докере Python сценарии?
Создаем сценарий и вставляем такой код: shell_exec("версия питона путь к срипту/имя вашего скрипта.py");
Вот мой пример

- изображение_2020-11-14_010035.png (26.45 КБ) 4611 просмотров
Для того, чтобы в докере работал запуск питоновских скриптов, необходимо установить
python-requests, если этого не сделать, то получим вот такую ошибку
No module named 'requests'

- 12.jpg (31.9 КБ) 4611 просмотров
Если не стоит 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
Команды можно запускать через терминал докера

- терминал докера.jpg (57.76 КБ) 4611 просмотров
Re: Docker MajorDoMo
Добавлено: Сб ноя 14, 2020 10:24 pm
Divan
Рабочие конфиги для работы приватных навыков модуля 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;
}
}
Конфиг для приватных навыков модуля yandex home
Код: Выделить всё
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;
}
Re: Docker MajorDoMo
Добавлено: Ср дек 02, 2020 11:21 am
geor
Здравствуйте.
Вопрос знатокам
MajorDoMo в докере на малине.
Хочу создать контейнер с базой и вынести на другой сервер, как подключиться к этому контейнеру, какие проблемы могут быть?
Re: Docker MajorDoMo
Добавлено: Чт дек 03, 2020 2:10 pm
solalex
вместо кучи proxypass на каждый файл, хватит одного на директорию
Код: Выделить всё
location /modules/yandexhome/ {
proxy_pass http://127.0.0.1:8888/modules/yandexhome;
}
Re: Docker MajorDoMo
Добавлено: Пн дек 07, 2020 6:14 pm
zagorodnov
Здравствуйте!
Установил и настроил систему из докер-хаба: "nick7zmail/majordomo".
При обновлении образа не будет ли удалена база данных? И где она хранится (настройки по-умолчанию)?
Re: Docker MajorDoMo
Добавлено: Пн дек 07, 2020 7:50 pm
Divan
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);
2) Скопировать все содержимое папки в докере куда-нибудь
Выключаете докер, удаляете контейнер, потом удаляете образ и все делаете по новой. Удалить образ без удаления контейнера нельзя, так как образ напрямую зависит от контейнера. Далее удаляете все данные которые выгрузил докер при включении и копируете то, что было у вас + импортируете базу через phpmyadmin.
Re: Docker MajorDoMo
Добавлено: Вт дек 08, 2020 6:08 am
zagorodnov
Зачем вам обновлять образ? Там только настроены приватные навыки.
Спасибо вам за ответ!
Я исхожу из того, что если разработчик обновляет образ, то вносит в него какие-то улучшения и исправления ошибок.
Re: Docker MajorDoMo
Добавлено: Пт дек 25, 2020 4:01 pm
Divan
Это про образ от nick7zmail
Если на странице сценария в подсказке "
Как запустить?" увидите повторяющиеся порты, как на скриншоте, то нужно сделать следующее.

- Безымянный.jpg (33.41 КБ) 3941 просмотр
Открываем файлик load_settings.php (он лежит в корне /var/www/html)
Находим строчку (115 строчка)
Код: Выделить всё
Define('SERVER_URL', 'http://' . $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT']);
и меняем на
Код: Выделить всё
Define('SERVER_URL', 'http://' . $_SERVER['HTTP_HOST'] );
PS: Обратите внимание, что имеются два вида образа мажордом в докере, один образ от
nick7zmail и второй от
A-SOM.
Если нужны приватные навыки, то нужно использовать образ от nick7zmail