Docker MajorDoMo

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Аватара пользователя
champloo
Сообщения: 42
Зарегистрирован: Ср май 22, 2019 12:07 pm
Благодарил (а): 2 раза
Поблагодарили: 15 раз

Re: Docker MajorDoMo

Сообщение champloo » Пт май 24, 2019 2:50 pm

Дмитрий Иванов писал(а):
Пт май 24, 2019 2:08 pm
champloo писал(а):
Пт май 24, 2019 1:00 pm
Автозагрузка выставляется в docker-compose параметром в каждом контейнере:

Код: Выделить всё

    restart: always 
хм, в файле /docker-majordomo/docker-compose.yml уже присутствует такая директива, но мажордом не стартует, пока в консоле не введешь команду

Код: Выделить всё

make build up
заскриптить и в автозапуск? Это правильно будет?
Не совсем. Для mysql, вы правы стоит данная опция.
Для majordomo нет
Добавьте строчку или дождитесь следующего релиза
Изображение
для перезапуска используйте:

Код: Выделить всё

make stop up
Если вы изменили что-нибудь в конфигурации или Docker-file

Код: Выделить всё

make stop build up
За это сообщение автора champloo поблагодарил:
Дмитрий Иванов (Пт май 24, 2019 3:24 pm)
Рейтинг: 1.16%
By design...
Дмитрий Иванов
Сообщения: 83
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 25 раз

Re: Docker MajorDoMo

Сообщение Дмитрий Иванов » Пт май 24, 2019 3:05 pm

Пока нет официальной инструкции, на всякий случай, подробная последовательность моих действий по установке на Debian 9:
СпойлерПоказать
Устанавливаем Debian 9 из опций отмечаем ssh-server и убираем GUI.
логинимся под root

Код: Выделить всё

apt install net-tools
apt install sudo
разрешаем руту ssh: (можно и без этого, если под юзером с sudo)

Код: Выделить всё

nano /etc/ssh/sshd_config
в секцию # Authentication: добавляем:

Код: Выделить всё

PermitRootLogin yes
ctrl+x Y (выходим, сохраняем).
заходим по ssh через PuTTY под root
доставляем компоненты:

Код: Выделить всё

apt install build-essential
apt install curl
apt install mc
apt install git
добавляем группу docker:

Код: Выделить всё

groupadd docker
ставим docker:

Код: Выделить всё

apt update
curl -sSL https://get.docker.com/ | sh
systemctl status docker
Устанавливаем композер:

Код: Выделить всё

curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
usermod -aG docker $USER
reboot
Клонируем репозиторий:

Код: Выделить всё

git clone https://bitbucket.org/a-som/docker-majordomo.git
копируем и правим config.env

Код: Выделить всё

cd docker-majordomo
cp config.env.dist config.env && nano config.env
пример файла:

Код: Выделить всё

PROJECT_NAME=localhost
env=dev
os=debian
# mysql
MYSQL_HOST=mysql
MYSQL_ROOT_PASSWORD=вашпароль
MYSQL_DATABASE=db_terminal
MYSQL_USER=root
MYSQL_PASSWORD=вашпароль
MYSQL_PORT=3306
модули доставляем:

Код: Выделить всё

git submodule update --init --recursive
устанавливаем:

Код: Выделить всё

cd docker-majordomo/
make install
cp -f ./app/config.php.sample ./app/config.php && nano ./app/config.php
правим подключение к базе:

Код: Выделить всё

Define('DB_HOST', 'mysql');
Define('DB_NAME', 'db_terminal');
Define('DB_USER', 'root');
Define('DB_PASSWORD', 'вашпароль');
make init-db
далее:
champloo писал(а):
Чт май 23, 2019 11:46 am
Внимание!
Мною протестировано, что первый запуск происходит продолжительное время из за установки модулей cycle.php
Но так создаёте некоторые нюансы при первом запуске.
Инструкция как запустить эту шайтан машинку после всего, что вы сделали в readme:

Код: Выделить всё

make exec-app
ps -auxf # находим pid процесса. например 33
kill 33 
/usr/bin/php /var/www/html/cycle.php ## Ждём когда сгенерируется все templates
После генерации templates, сделаем всё заново:

Код: Выделить всё

exit
make init-db
make stop build up
Вуаля, всё завелось :)
Для автозапуска добавить restart: always перед строкой mysql:

Код: Выделить всё

nano ~/docker-majordomo/docker-compose.yml
champloo писал(а):
Пт май 24, 2019 2:50 pm
для перезапуска используйте:

Код: Выделить всё

make stop up
Если вы изменили что-нибудь в конфигурации или Docker-file

Код: Выделить всё

make stop build up
Столкнулся с тем, что не работали устройства онлайн:

Код: Выделить всё

make exec-app
apt install iputils-ping
exit
Это помогло или само заработало сейчас уже не скажу...
Так же в этой версии нужно поправить права:

Код: Выделить всё

make exec-app
chown -R www-data:www-data /var/www 
chmod -R 777 /var/www
exit
За это сообщение автора Дмитрий Иванов поблагодарил:
champloo (Пт май 24, 2019 3:36 pm)
Рейтинг: 1.16%
Аватара пользователя
champloo
Сообщения: 42
Зарегистрирован: Ср май 22, 2019 12:07 pm
Благодарил (а): 2 раза
Поблагодарили: 15 раз

Re: Docker MajorDoMo

Сообщение champloo » Пт май 24, 2019 3:39 pm

Дмитрий Иванов писал(а):
Пт май 24, 2019 3:05 pm
Пока нет официальной инструкции, на всякий случай, подробная последовательность моих действий по установке на Debian 9:
СпойлерПоказать
Устанавливаем Debian 9 из опций отмечаем ssh-server и убираем GUI.
логинимся под root

Код: Выделить всё

apt install net-tools
apt install sudo
разрешаем руту ssh: (можно и без этого, если под юзером с sudo)

Код: Выделить всё

nano /etc/ssh/sshd_config
в секцию # Authentication: добавляем:

Код: Выделить всё

PermitRootLogin yes
ctrl+x Y (выходим, сохраняем).
заходим по ssh через PuTTY под root
доставляем компоненты:

Код: Выделить всё

apt install build-essential
apt install curl
apt install mc
apt install git
добавляем группу docker:

Код: Выделить всё

groupadd docker
ставим docker:

Код: Выделить всё

apt update
curl -sSL https://get.docker.com/ | sh
systemctl status docker
Устанавливаем композер:

Код: Выделить всё

curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
usermod -aG docker $USER
reboot
Клонируем репозиторий:

Код: Выделить всё

git clone https://bitbucket.org/a-som/docker-majordomo.git
копируем и правим config.env

Код: Выделить всё

cd docker-majordomo
cp config.env.dist config.env && nano config.env
пример файла:

Код: Выделить всё

PROJECT_NAME=localhost
env=dev
os=debian
# mysql
MYSQL_HOST=mysql
MYSQL_ROOT_PASSWORD=вашпароль
MYSQL_DATABASE=db_terminal
MYSQL_USER=root
MYSQL_PASSWORD=вашпароль
MYSQL_PORT=3306
модули доставляем:

Код: Выделить всё

git submodule update --init --recursive
устанавливаем:

Код: Выделить всё

cd docker-majordomo/
make install
cp -f ./app/config.php.sample ./app/config.php && nano ./app/config.php
правим подключение к базе:

Код: Выделить всё

Define('DB_HOST', 'mysql');
Define('DB_NAME', 'db_terminal');
Define('DB_USER', 'root');
Define('DB_PASSWORD', 'вашпароль');
make init-db
далее:
champloo писал(а):
Чт май 23, 2019 11:46 am
Внимание!
Мною протестировано, что первый запуск происходит продолжительное время из за установки модулей cycle.php
Но так создаёте некоторые нюансы при первом запуске.
Инструкция как запустить эту шайтан машинку после всего, что вы сделали в readme:

Код: Выделить всё

make exec-app
ps -auxf # находим pid процесса. например 33
kill 33 
/usr/bin/php /var/www/html/cycle.php ## Ждём когда сгенерируется все templates
После генерации templates, сделаем всё заново:

Код: Выделить всё

exit
make init-db
make stop build up
Вуаля, всё завелось :)
Для автозапуска добавить restart: always перед строкой mysql:

Код: Выделить всё

nano ~/docker-majordomo/docker-compose.yml
champloo писал(а):
Пт май 24, 2019 2:50 pm
для перезапуска используйте:

Код: Выделить всё

make stop up
Если вы изменили что-нибудь в конфигурации или Docker-file

Код: Выделить всё

make stop build up
Столкнулся с тем, что не работали устройства онлайн:

Код: Выделить всё

make exec-app
apt install iputils-ping
exit
Это помогло или само заработало сейчас уже не скажу...
Так же в этой версии нужно поправить права:

Код: Выделить всё

make exec-app
chown -R www-data:www-data /var/www 
chmod -R 777 /var/www
exit
Я вчера с нуля Сергею показал без всех этих нюансов :)
Но, спасибо. Надеюсь кому-нибудь пригодится.
Разработка новых образов и систем и поддержка их офицально approved.
В течении недели подготовлю линейность и подедржку всего.
By design...
Дмитрий Иванов
Сообщения: 83
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 25 раз

Re: Docker MajorDoMo

Сообщение Дмитрий Иванов » Пт май 24, 2019 4:57 pm

Я убедился, что без пакета iputils-ping в самом докере, в МД не работают устройства online и статус интернета желтый. После обновления системы, всё, что я устанавливал внутри контейнера слетело, и интернет пожелтел... А после

Код: Выделить всё

make exec-app
apt install iputils-ping
всё заработало.
Аватара пользователя
champloo
Сообщения: 42
Зарегистрирован: Ср май 22, 2019 12:07 pm
Благодарил (а): 2 раза
Поблагодарили: 15 раз

Re: Docker MajorDoMo

Сообщение champloo » Пт май 24, 2019 6:49 pm

Хорошо. Я добавлю этот пакет в релиз.
By design...
Дмитрий Иванов
Сообщения: 83
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 25 раз

Re: Docker MajorDoMo

Сообщение Дмитрий Иванов » Пн май 27, 2019 10:04 am

Такой вопрос: какова будет идеология по установке доп. сервисов в ОС. Например, для MQTT нужен mosquitto, я так полагаю, что его нужно ставить не в докер, а в базовую ОС. А в настройках модуля указывать не localhost, а внешний ip сервера. Верно?
С модулями, где можно указать ip сервера в общем-то понятно, а вот, например, что делать с модулем "Устройства Bluetooth", которому нужен пакет BlueZ?
За это сообщение автора Дмитрий Иванов поблагодарил:
champloo (Вт май 28, 2019 5:18 pm)
Рейтинг: 1.16%
Аватара пользователя
champloo
Сообщения: 42
Зарегистрирован: Ср май 22, 2019 12:07 pm
Благодарил (а): 2 раза
Поблагодарили: 15 раз

Re: Docker MajorDoMo

Сообщение champloo » Вт май 28, 2019 5:19 pm

Дмитрий Иванов писал(а):
Пн май 27, 2019 10:04 am
Такой вопрос: какова будет идеология по установке доп. сервисов в ОС. Например, для MQTT нужен mosquitto, я так полагаю, что его нужно ставить не в докер, а в базовую ОС. А в настройках модуля указывать не localhost, а внешний ip сервера. Верно?
С модулями, где можно указать ip сервера в общем-то понятно, а вот, например, что делать с модулем "Устройства Bluetooth", которому нужен пакет BlueZ?
Хороший вопрос.
Докер в принципе может фовардить системные файлы и /dev
я думаю проблем особо не будет. Но вероятно всего микро-сервисить буду.
Пока честно, ещё даже не дошли руки проверить всё т.к. никто особо не пытался.
By design...
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Docker MajorDoMo

Сообщение immortal » Ср май 29, 2019 10:54 pm

база я вижу не оптимизирована, как сделать установку с оптимизацией базы данных?
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Docker MajorDoMo

Сообщение directman66 » Чт май 30, 2019 11:27 am

Мои пожелания по внедрению пакетов:
1) Для работы с ble желательно внедрить bluez (его отдельная установка не всегда заканчивается успешно)
2) Для работы с s.m.a.r.t. smartmontools
3) для работы с arp итд нужна утилита net-tools
4) рассмотреть варианты установки python, nodejs для совместного использования.
5) часто нужны утилиты для компиляции (make..)
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Docker MajorDoMo

Сообщение directman66 » Пн июн 10, 2019 6:25 am

Задача жива?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ответить