metatester agent в контейнере на Linux

 

Кому-то интересно запускать агент тестирования MT5 в контейнере на Linux (Docker/Podman)?

Возможно кто-то давно хотел агент на Linux, но не знал как реализовать.

Я написал скрипт, который создает Docker файл, энтрипоинт файл и разворачивает контейнеры по количеству ядер в системе, с привязкой по ядрам.

При развертывании на все ядра, при старте тестирования, сервис агента внутри контейнера может падать (судя по всему сервис wine вытесняет выполняя какие-то свои задачи), но я реализовал слежение за агентом внутри контейнера и его переподнятие.

После старта тестирования и получения задач, падений агентов не наблюдалось.

Все что нужно от хоста на котором разворачиваются агенты - поставить podman, положить агента (metatester64.exe) рядом со скриптом и запустить скрипт.

Вторые сутки десяток хостов с агентам со 100% загрузкой работают без проблем.

Если кому-то нужно/интересно, отпишитесь, выложу.

 
White Rabbit:

Кому-то интересно запускать агент тестирования MT5 в контейнере на Linux (Docker/Podman)?

Возможно кто-то давно хотел агент на Linux, но не знал как реализовать.

Я написал скрипт, который создает Docker файл, энтрипоинт файл и разворачивает контейнеры по количеству ядер в системе, с привязкой по ядрам.

При развертывании на все ядра, при старте тестирования, сервис агента внутри контейнера может падать (судя по всему сервис wine вытесняет выполняя какие-то свои задачи), но я реализовал слежение за агентом внутри контейнера и его переподнятие.

После старта тестирования и получения задач, падений агентов не наблюдалось.

Все что нужно от хоста на котором разворачиваются агенты - поставить podman, положить агента (metatester64.exe) рядом со скриптом и запустить скрипт.

Вторые сутки десяток хостов с агентам со 100% загрузкой работают без проблем.

Если кому-то нужно/интересно, отпишитесь, выложу.

Интересно) 
 

В принципе интересно, хоть и не пользуюсь ни контейнерами, ни агентами.

Но всё, что касается MT5 и Linux, потенциально интересно.

 
White Rabbit:

Кому-то интересно запускать агент тестирования MT5 в контейнере на Linux (Docker/Podman)?

Возможно кто-то давно хотел агент на Linux, но не знал как реализовать.

Я написал скрипт, который создает Docker файл, энтрипоинт файл и разворачивает контейнеры по количеству ядер в системе, с привязкой по ядрам.

При развертывании на все ядра, при старте тестирования, сервис агента внутри контейнера может падать (судя по всему сервис wine вытесняет выполняя какие-то свои задачи), но я реализовал слежение за агентом внутри контейнера и его переподнятие.

После старта тестирования и получения задач, падений агентов не наблюдалось.

Все что нужно от хоста на котором разворачиваются агенты - поставить podman, положить агента (metatester64.exe) рядом со скриптом и запустить скрипт.

Вторые сутки десяток хостов с агентам со 100% загрузкой работают без проблем.

Если кому-то нужно/интересно, отпишитесь, выложу.

Скрипт в аттаче.

Как пользоваться:

1. Ставим на хост Docker (инструкция по ссылке centos/alma/rocky, для Ubuntu просто выполняем apt install docker.io -y ) или Podman (Centos - dnf install podman -y, Ubuntu - apt install podman -y).

2. Кладем в один и тот же каталог распаковынный скрипт и metatester64.exe

3. Переходим в этот каталог, делаем chmod +x ./mt_agent_container.sh и ./mt_agent_container.sh start (делаем под рутом или под su).

У скрипта 2 команды, start и stop:

start - создает Docker и entrypoint.sh файлы и билдит контейнер. 

stop - останавливает контейнеры, удаляет их, удаляет имейдж (чтобы мусора не оставалось и каждый раз содавалось все с чистого листа, времени это занимает не больше минуты).

Сеть у контейнеров хостовая, порты по умолчанию от 2000 и дальше +1 по количеству ядер, вобщем все так же, как и на винде, по умолчанию.

После перезагрузки хоста контейнеры сами поднимаются (флаг --restart always).

Проверил на Centos/Debian/Ubuntu, все работает.

Если вдруг кто-то захочет что-то под себя изменить, делайте это внимательно, т.к. любые неправильные кавычки/символы могут все сломать (особенно если править entrypoint.sh).

Ну и отпишитесь со своей историей успеха :)

Файлы:
 
@White Rabbit, а аккаунт куда вбивать?
 
@WWolf какой аккаунт?
 

а зачем собственно ?

в чём выигрыш..не платить лицензию Win за счёт просада скорости и надёжности ? ради развёртывания...

в плане тестирования это ничего не даёт и дать не может

пока-что единственное с чем сталкивался, где востребованы докеры - это фермы виртуалок подражающие сервису сигналов MQ

 
Maxim Kuznetsov #:

а зачем собственно ?

в чём выигрыш..не платить лицензию Win за счёт просада скорости и надёжности ? ради развёртывания...

в плане тестирования это ничего не даёт и дать не может

пока-что единственное с чем сталкивался, где востребованы докеры - это фермы виртуалок подражающие сервису сигналов MQ

Последняя винда, которая была у меня дома - XP.

Бесит её "самостоятельность", навязываемая куча ненужного, интерфейс.

 
Maxim Kuznetsov #:

а зачем собственно ?

в чём выигрыш..не платить лицензию Win за счёт просада скорости и надёжности ? ради развёртывания...

в плане тестирования это ничего не даёт и дать не может

пока-что единственное с чем сталкивался, где востребованы докеры - это фермы виртуалок подражающие сервису сигналов MQ

Если вы задаетесь такими вопросами, то вам скорее всего это не нужно.

 
White Rabbit #:
@WWolf какой аккаунт?

от MQL5 Cloud Network

 
WWolf #:

от MQL5 Cloud Network

Я использовал это для своих целей тестирования, без продажи в клауд, поэтому не задавался этим вопросом.

Но если можно через командную строку строку передать на вход в виде параметров для агента или где-то файл поправить с конфигом, то можно будет добавить в скрипт.

Если найдете способ где в конфигах это хранится или как передать агенту в виде параметров, я могу поправить скрипт.