LINUX.ORG.RU

запустить приложение в Wine из Docker

 , ,


0

3

Подскажите кто знает есть ли смысл стараться.

Есть:

Ubuntu 20.04 установлено XFCE4 и Xrdp. Работаю через RDP.

Нужно:

Запускать 32 битную Windows программу (на русском) которая работает с COM1 портом (это весы Масса-К). Но запускать через контейнер Docker! Программа прекрасно запускается если Wine поставить на Ubuntu и все работает. Но ставить Wine я не хочу, т.к. при установке он тянет за собой почтb 1,5 гб всякой фигни. Вот и возникла идея поставить Docker и в нем запускать эту программу.

Но не получается сделать все красиво. что получилось:

  1. Установил контейнер отсюда https://github.com/scottyhardy/docker-wine
  2. Моя программа запускается только с самого сервера, а по RDP пишет
0010:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0010:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0010:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0010:err:ole:get_local_server_stream Failed: 80004002
0012:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0012:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
  1. Даже при запуске на сервере нет русского языка, а только крокозяблы
  2. Не знаю можно ли пробросить COM порт, локально то просто ссылку делаешь, а в контейнере можно такое провернуть?

Во общем вопрос. Можно ли сделать подобную «связку» RDP+COMпорт-Docker-Wine-Приложение win32?

XRDP емнип слушает на 10-м дисплее. Попробуй export DISPLAY=:10 и не забудь это в докер пробросить.

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

Спасибо, запустить под RDP получилось.

./docker-wine --env="DISPLAY=:10" wine /home/wineuser/MASSA-K.exe

Теперь вопрос как быть с русским и пробросом COM порта. Можете и здесь подсказать?

zhukovia
() автор топика
Последнее исправление: zhukovia (всего исправлений: 1)
Ответ на: комментарий от cocucka

Попытка подсунуть --env="LANG=ru_RU.UTF-8" ничего не дала.

zhukovia
() автор топика
Ответ на: комментарий от zhukovia

Про русский не знаю, но девайсы в докер пробрасываются с помощью параметра --device=/dev/ttyS0:/dev/ttyS0, а там wine уж разберётся.

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

Еще раз большое спасибо, что то действительно пробросилось. Протестировать на работу пока к сожалению не могу но это уже большое дело.

Русский язык буду дальше ковырять. Может есть хотя бы идея куда копать?

zhukovia
() автор топика
Ответ на: комментарий от Anoxemian

Это типа так?

winetricks msttfcorefonts

Если да то так не получилось, делал так

winetricks corefonts

Но все равно не работает.

zhukovia
() автор топика
Ответ на: комментарий от Anoxemian

Видимо это имелось ввиду

apt-get install msttcorefonts

Но в контейнере это не работает, видимо нужно репозитории и инет настраивать.

zhukovia
() автор топика

Все получилось Запускал командой ./docker-wine --device=/dev/ttyS0:/dev/ttyS0 --env="DISPLAY=:10" --env="LC_ALL=ru_RU.CP1251" wine /home/wineuser/MASSA-K.exe Но перед этим установил в контейнере шрифты командой ./docker-wine winetricks allfonts но там много лишнего понаустанавливалось, позже разберусь что нужно. Возможно будет достаточно ./docker-wine winetricks corefonts

Всем спасибо за помощь.

zhukovia
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.